三、使用Java驱动类实现对Cassandra的增删改查
1、第一个代码
package com.xxx.test;
import java.util.List;
import com.datastax.driver.core.ResultSet;
import com.datastax.driver.core.Cluster;
import com.datastax.driver.core.Row;
import com.datastax.driver.core.Session;
/**
* 实现增删改查的操作
* @author Administrator
*
*/
public class SecondDemo {
public static void main(String[] args) {
Cluster cluster = null;
Session session = null;
try {
//定义cluster类
cluster = Cluster.builder().addContactPoint("127.0.0.1").build();
//需要获取session对象
session = cluster.connect();
//创建键空间 防止发生错误 if not exists
String createKeySpaceCQL =
"create keyspace if not exists testkeyspace1 with "
+ "replication={'class':'SimpleStrategy','replication_factor':1}";
session.execute(createKeySpaceCQL);
//创建列族
String createTableCQL =
"create table if not exists testkeyspace1.student(name varchar primary key , age int)";
session.execute(createTableCQL);
//插入数据
String insertCQL =
"insert into testkeyspace1.student(name,age) values('zhang',23)";
session.execute(insertCQL);
//查询
String queryCQL =
"select * from testkeyspace1.student";
ResultSet rs = session.execute(queryCQL);
List<Row> dataList = rs.all();
for (Row row : dataList) {
System.out.println("------name" + row.getString("name"));
System.out.println("------age" + row.getInt("age"));
}
//修改
String updateCQL =
"update testkeyspace1.student set age=40 where name='zhang'";
session.execute(updateCQL);
rs = session.execute(queryCQL);
dataList = rs.all();
for (Row row : dataList) {
System.out.println("------name" + row.getString("name"));
System.out.println("------age" + row.getInt("age"));
}
//删除数据
String deleteCQL=
"delete from testkeyspace1.student where name='zhang'";
session.execute(deleteCQL);
rs = session.execute(queryCQL);
dataList = rs.all();
for (Row row : dataList) {
System.out.println("------name" + row.getString("name"));
System.out.println("------age" + row.getInt("age"));
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
结果:
2、第二个代码 QueryBuilder
import com.datastax.driver.core.Cluster;
import com.datastax.driver.core.ResultSet;
import com.datastax.driver.core.Row;
import com.datastax.driver.core.Session;
import com.datastax.driver.core.querybuilder.Insert;
import com.datastax.driver.core.querybuilder.QueryBuilder;
import com.datastax.driver.core.querybuilder.Select.Where;
public class ThirdDemo {
public static void main(String[] args) {
Cluster cluster = null;
Session session = null;
try {
//定义cluster类
cluster = Cluster.builder().addContactPoint("127.0.0.1").build();
//需要获取session对象
session = cluster.connect();
//新增数据
Insert insert=
QueryBuilder.insertInto("testkeyspace1", "student").value("name", "xiaoming").value("age", 23);
session.execute(insert);
//查询数据
System.out.println("------查询数据------");
Where select =
QueryBuilder.select().all().from("testkeyspace1", "student").where(QueryBuilder.eq("name", "xiaoming"));
System.out.println(select);
ResultSet rs = session.execute(select);
for (Row row : rs.all()) {
System.out.println("-----name:" + row.getString("name"));
System.out.println("-----age:" + row.getInt("age"));
}
//更新数据
System.out.println("------更新数据------");
com.datastax.driver.core.querybuilder.Update.Where update=
QueryBuilder.update("testkeyspace1", "student").with(QueryBuilder.set("age", 50)).where(QueryBuilder.eq("name", "xiaoming"));
System.out.println(update);
session.execute(update);
rs = session.execute(select);
for (Row row : rs.all()) {
System.out.println("-----name:" + row.getString("name"));
System.out.println("-----age:" + row.getInt("age"));
}
//删除数据
System.out.println("------删除数据------");
com.datastax.driver.core.querybuilder.Delete.Where delete = QueryBuilder.delete().from("testkeyspace1", "student").where(QueryBuilder.eq("name", "xiaoming"));
System.out.println(delete);
session.execute(delete);
rs = session.execute(select);
for (Row row : rs.all()) {
System.out.println("-----name:" + row.getString("name"));
System.out.println("-----age:" + row.getInt("age"));
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
结果:
3、第三个代码 PreparedStatement
package com.xxx.test;
import java.util.List;
import com.datastax.driver.core.Cluster;
import com.datastax.driver.core.PreparedStatement;
import com.datastax.driver.core.ResultSet;
import com.datastax.driver.core.Row;
import com.datastax.driver.core.Session;
public class FourthDemo {
public static void main(String[] args) {
Cluster cluster = null;
Session session = null;
try {
//定义cluster类
cluster = Cluster.builder().addContactPoint("127.0.0.1").build();
//需要获取session对象
session = cluster.connect();
PreparedStatement statement =
session.prepare(
"insert into testkeyspace1.student(name,age) values(?,?)");
//为占位符指定值
session.execute(statement.bind("wangwu",23));
//查询
String queryCQL =
"select * from testkeyspace1.student";
ResultSet rs = session.execute(queryCQL);
List<Row> dataList = rs.all();
for (Row row : dataList) {
System.out.println("------name" + row.getString("name"));
System.out.println("------age" + row.getInt("age"));
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
结果:
参考其他资料;