java实现cassandra的增删改查
cassandra使用cql语言作为操作语言,cassandra在2.0之后,在操作上越来越像sql数据库的操作,这样想从传统关系型数据库,切换到cassandra的花,上手成本也越来越低。使用官方java驱动操作cassandra 非常简单。 maven引入驱动包 <dependency> <groupId>com.datastax.cassandra</groupId> <artifactId>cassandra-driver-core</artifactId> <version>2.0.1</version> </dependency> 1、创建应用的唯一session。 Cluster cluster = Cluster.builder() .addContactPoint("192.168.22.161") .build(); 这里构建一个集群对象,“192.168.22.161” 是cassandra的种子节点(seed node). Session session = cluster.connect(); 你也可以针对一个特定的keyspace获取一个session Session session = cluster.connect("mykeyspace"); session是线程安全的,所以一个应用中,你可以只有一个session实例,官方建议一个keyspace一个session。 2、session可以直接支持执行cql语句。 String cql = "select * from mykeyspace.tablename;"; session.execute(cql); 你完全可以用这种方式完成任意操作,记住cql语句后面一定要带分号。 3、如果你不想繁琐的去拼字符串,你可以用com.datastax.driver.core.Querybuilder。 insert 一条记录String cql = “insert into mykeyspace.tablename(a,b) values(1,2);” 你可以这样写: session.execute( QueryBuilder.insertInto("mykeyspace", "tablename") .values(new String[]{"a","b"}, new Object[]{1,2})); delete 记录String cql = “delete from mykeyspace.tablename where a=1”; 你可以这样写: session.execute(QueryBuilder.delete() .from("mykeyspace", "tablename") .where(QueryBuilder.eq("a", 1))); update 记录String cql = “update mykeyspace.tablename set b=2 where a=1” ...