scylladb:利用java api操作scylladb数据库

博客上全是关于scylladb的介绍和性能对比,很少有scylladb方面的干货,这里从scylladb官网各种文档里面整合出一个java版的例子,例子中展示如何连接scylladb,如何加载数据,如何查询数据,和jdbc类似,只不过这里是使用会话session而不是连接connection来操作。

首先是创建一个maven工程,引入相关依赖。

<dependency>
	<groupId>com.datastax.cassandra</groupId>
	<artifactId>cassandra-driver-core</artifactId>
	<version>3.6.0</version>
</dependency>
<dependency>
	<groupId>com.datastax.cassandra</groupId>
	<artifactId>cassandra-driver-mapping</artifactId>
	<version>3.6.0</version>
</dependency>
<dependency>
	<groupId>com.datastax.cassandra</groupId>
	<artifactId>cassandra-driver-extras</artifactId>
	<version>3.6.0</version>
</dependency>

java代码:

package com.xxx.scylladbdemo;
import com.datastax.driver.core.Cluster;
import com.datastax.driver.core.ResultSet;
import com.datastax.driver.core.Row;
import com.datastax.driver.core.Session;
public class App {
	public static String[] contact_points = {"127.0.0.1"};
	public static int port = 9042;
	
	private static Cluster cluster;
	private static Session session;
	
	public static void connect(){
		cluster = Cluster.builder().addContactPoints(contact_points).withPort(port).build();
		System.out.printf("connected to cluster : %s%n", cluster.getMetadata().getClusterName());
		session = cluster.connect();
	}
	
	public static void query(){
		ResultSet rs = session.execute("select * from domestic.student");
		System.out.printf("%-30s\t%-20s\t%-20s%n", "ID","Name","Age");
		for(Row row:rs){
			System.out.printf("%-30d\t%-20s\t%-20d%n", row.getInt("id"),row.getString("name"),row.getInt("age"));
		}
	}
	
	public static void loadData(){
		session.execute("insert into domestic.student(id,name,age) values (3,'jack',20)");
	}
	
	public static void close(){
		session.close();
		cluster.close();
		System.out.println("close.");
	}
	
    public static void main( String[] args ){
    	connect();
    	loadData();
    	query();
    	close();
    }
}

 因为我这里scylladb数据库安装在linux上,而且开启的主机访问只支持127.0.0.1,所以,无法通过ip来直接访问scylladb,需要将程序打包,然后放到scylladb服务器上运行。运行之前数据表结构以及数据是这样的。

实例中会插入一条记录,然后查询所有记录,会查询出来三条记录,运行结果截图:

 

 在本例中,我们使用的jar包是cassandra-driver-core、cassandra-driver-mapping、cassandra-driver-extras,是因为scylladb是cassandra发展而来的,只不过是用c++实现的,因此无论是语法还是java driver都是极度类似的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

luffy5459

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值