绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
scylladb:利用java api操作scylladb数据库
2022-05-25 17:32:03

博客上全是关于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

分享好友

分享这个小栈给你的朋友们,一起进步吧。

ScyllaDB
创建时间:2022-04-19 10:18:17
ScyllaDB 是用 C++ 重写的 Cassandra,每节点每秒处理 100 万 TPS。ScyllaDB 完全兼容 Apache Cassandra,拥有比 Cassandra 多 10x 倍的吞吐量,降低了延迟。 ScyllaDB 是性能优异的 NoSQL 列存储数据库。 ScyllaDB 在垃圾收集或者 Compaction 的时候不需要暂停;在常规生产负载的时候可以添加和删除节点。
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

技术专家

查看更多
  • 飘絮絮絮丶
    专家
戳我,来吐槽~