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訪问的主要内容,如果未能解决你的问题,请参考以下文章
cassandra datastax 编写生成的代码时出现意外错误:java.lang.NullPointerException