Cassandra数据库Java訪问

Posted lxjshuju

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Cassandra数据库Java訪问相关的知识,希望对你有一定的参考价值。

针对的时Cassandra 2.0 数据库

Java本地client訪问Cassandra,首先建立Javaproject,使用Maven进行管理。

引入依赖:

<dependency>
    <groupId>com.datastax.cassandra</groupId>
    <artifactId>cassandra-driver-core</artifactId>
    <version>2.1.0</version>
</dependency>

1. 类似Elasticsearch的方式,如今client构建一个集群对象:

Cluster cluster = Cluster.builder()
                .addContactPoint("your ip")
                .build();
        Metadata metadata = cluster.getMetadata();
        System.out.printf("Connected to cluster: %s\n",
                metadata.getClusterName());
        for (Host host : metadata.getAllHosts()) {
            System.out.printf("Datatacenter: %s; Host: %s; Rack: %s\n",
                    host.getDatacenter(), host.getAddress(), host.getRack());
        }

2. 通过一个Session对象。实现对Cassandra的全部增删改查。

Session session = cluster.connect();


3. 通过Session对象实现全部的DML等操作。 (PS:在对 Cassandra 进行操作之前,建议先了解 Cassandra 的架构以及数据组织形式)

a. 我们首先建立一个Schema:

<pre name="code" class="java">ResultSet results = session.execute("SELECT * FROM simplex.playlists ");

        System.out.println(String.format("%-30s\t%-20s\t%-20s\n%s", "title", "album", "artist",
                "-------------------------------+-----------------------+--------------------"));
        for (Row row : results) {
            System.out.println(String.format("%-30s\t%-20s\t%-20s", row.getString("title"),
                    row.getString("album"), row.getString("artist")));
        }
        System.out.println();

session.execute("CREATE KEYSPACE simplex WITH replication " + "= {‘class‘:‘SimpleStrategy‘, ‘replication_factor‘:3};");


b.建立一个Table:

session.execute(
                "CREATE TABLE simplex.songs (" +
                        "id uuid PRIMARY KEY," +
                        "title text," +
                        "album text," +
                        "artist text," +
                        "tags set<text>," +
                        "data blob" +
                        ");");
c. 插入数据:

session.execute(
                "INSERT INTO simplex.songs (id, title, album, artist, tags) " +
                        "VALUES (" +
                        "756716f7-2e54-4715-9f00-91dcbea6cf50," +
                        "‘La Petite Tonkinoise‘," +
                        "‘Bye Bye Blackbird‘," +
                        "‘Joséphine Baker‘," +
                        "{‘jazz‘, ‘2013‘})" +
                        ";");
d. 查询数据:

ResultSet results = session.execute("SELECT * FROM simplex.playlists ");

        System.out.println(String.format("%-30s\t%-20s\t%-20s\n%s", "title", "album", "artist",
                "-------------------------------+-----------------------+--------------------"));
        for (Row row : results) {
            System.out.println(String.format("%-30s\t%-20s\t%-20s", row.getString("title"),
                    row.getString("album"), row.getString("artist")));
        }
        System.out.println();








以上是关于Cassandra数据库Java訪问的主要内容,如果未能解决你的问题,请参考以下文章

如何使用Apache Flink阅读Cassandra?

从 java 代码连接 cassandra 集群时出错

怎么用jdbc连接cassandra数据库

使用Java Spark将数据集保存到Cassandra中

cassandra datastax 编写生成的代码时出现意外错误:java.lang.NullPointerException

Android中关于JNI 的学习在JNI层訪问Java端对象