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

2022-05-25 00:00:00 专区 订阅 节点 运行 记录

博客上全是关于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都是极度类似的。
————————————————
版权声明:本文为CSDN博主「luffy5459」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/feinifi/article/details/89478983

相关文章