Cassandra连接Java(二)

8 篇文章 0 订阅
7 篇文章 0 订阅

三、使用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();
		}
	}
}

结果:



参考其他资料;



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值