先分享一个最新的cassandra-java-driver文档,点击电子书分享里的链接,找到javaDriver21.pdf。
该文档内容比较全,包含:jdbc连接cassandra集群,执行cql增删改查,批量查询,异步查询,cql的类型和java类型的映射关系及用户自定义类型使用,ORM等。
Cassandra是一个NoSql数据库,纯java编写,apache的顶级项目,主页:http://cassandra.apache.org/(简介不多说网上有)。
入门步骤:(我的jdk版本是1.7.0_71,win7系统)
1.去主页下载cassandra,我下载的是apache-cassandra-2.1.9,然后bin/cassandra.bat启动数据库,如果想使用bin/cqlsh.bat则需要安装python2.7。
2.贴代码
<dependency> <groupId>com.datastax.cassandra</groupId> <artifactId>cassandra-driver-core</artifactId> <version>2.1.5</version> </dependency>
SimpleClient:
package com.zoo; import com.datastax.driver.core.Cluster; import com.datastax.driver.core.Host; import com.datastax.driver.core.Metadata; import com.datastax.driver.core.ResultSet; import com.datastax.driver.core.Row; import com.datastax.driver.core.Session; /** * * @author yankai913@gmail.com * @date 2015-9-25 * */ public class SimpleClient { private Cluster cluster; private Session session; public Session getSession() { return this.session; } /** * 连接集群,创建执行cql的session对象。 * * @param node */ public void connect(String node) { cluster = Cluster.builder().addContactPoint(node).build(); Metadata metadata = cluster.getMetadata(); System.out.printf("Connected to cluster: %s\n", metadata.getClusterName()); for (Host host : metadata.getAllHosts()) { System.out.printf("Datacenter: %s; Host: %s; Rack: %s\n", host.getDatacenter(), host.getAddress(), host.getRack()); } session = cluster.connect(); System.out.println(); } /** * 创建schema, 创建库:simplex,表:simplex.songs,表:simplex.playlists */ public void createSchema() { session.execute("CREATE KEYSPACE IF NOT EXISTS simplex WITH replication " + "= {'class':'SimpleStrategy', 'replication_factor':3};"); session.execute("CREATE TABLE IF NOT EXISTS simplex.songs (" + "id uuid PRIMARY KEY," + "title text," + "album text," + "artist text," + "tags set<text>," + "data blob" + ");"); session.execute("CREATE TABLE IF NOT EXISTS simplex.playlists (" + "id uuid," + "title text," + "album text, " + "artist text," + "song_id uuid," + "PRIMARY KEY (id, title, album, artist)" + ");"); } /** * 插入数据 */ public void loadData() { 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'})" + ";"); session.execute("INSERT INTO simplex.playlists (id, song_id, title, album,artist) " + "VALUES (" + "2cc9ccb7-6221-4ccb-8387-f22b6a1b354d," + "756716f7-2e54-4715-9f00-91dcbea6cf50," + "'La Petite Tonkinoise'," + "'Bye Bye Blackbird'," + "'Joséphine Baker'" + ");"); } /** * 查询simplex.songs */ public void querySchema() { ResultSet results2 = session.execute("SELECT * FROM simplex.songs " + "WHERE id = 756716f7-2e54-4715-9f00-91dcbea6cf50;"); for (Row row : results2) { System.out.println(row.getUUID("id") + "\t" + row.getString("title") + "\t" + row.getString("album") + "\t" + row.getString("artist") + "\t" + row.getSet("tags", String.class)); } System.out.println(); } /** * 修改simplex.songs */ public void updateSchema() { session.execute("UPDATE simplex.songs set title = 'La Petite Tonkinoise Updated'" + " WHERE id = 756716f7-2e54-4715-9f00-91dcbea6cf50;"); } /** * 删除simplex.songs */ public void deleteSchema() { session.execute("DELETE FROM simplex.songs " + " WHERE id = 756716f7-2e54-4715-9f00-91dcbea6cf50;"); } /** * 删除keyspace,keyspace可以理解成oracle里的schema */ public void dropSchema() { session.execute("DROP KEYSPACE simplex;"); } public void close() { session.close(); cluster.close(); } public static void main(String[] args) { SimpleClient client = new SimpleClient(); try { client.connect("127.0.0.1"); client.dropSchema(); client.createSchema(); client.loadData(); System.out.println("before update..."); client.querySchema(); System.out.println("after update..."); client.updateSchema(); client.querySchema(); System.out.println(); client.deleteSchema(); System.out.println("after delete..."); client.querySchema(); System.out.println(); } catch (Throwable t) { t.printStackTrace(); } finally { client.close(); } } }
打印结果:
Connected to cluster: Test Cluster
Datacenter: datacenter1; Host: /127.0.0.1; Rack: rack1
before update…
756716f7-2e54-4715-9f00-91dcbea6cf50 La Petite Tonkinoise Bye Bye Blackbird Joséphine Baker [2013, jazz]
after update…
756716f7-2e54-4715-9f00-91dcbea6cf50 La Petite Tonkinoise Updated Bye Bye Blackbird Joséphine Baker [2013, jazz]
after delete…
下一篇说cassandra的ORM。