JAVA操作cassandra数据库

如果是maven项目,在pom.xml里加入依赖。不是的话下载相应的jar包放到lib目录下。这里驱动包的版本要和你cassandra的大版本一致。我这里cassandra的版本是最新的3.9,驱动是3.0

1 <dependency>
2     <groupId>com.datastax.cassandra</groupId>
3     <artifactId>cassandra-driver-core</artifactId>
4     <version>3.0.0</version>
5 </dependency>

新建一个类CassandraTest。

连接cassandra

 1 public Cluster cluster;
 2
 3 public Session session;
 4
 5 public void connect()
 6 {
 7     // addContactPoints:cassandra节点ip withPort:cassandra节点端口 默认9042
 8     // withCredentials:cassandra用户名密码 如果cassandra.yaml里authenticator:AllowAllAuthenticator 可以不用配置
 9     cluster = Cluster.builder().addContactPoints("192.168.3.89").withPort(9042)
10             .withCredentials("cassandra", "cassandra").build();
11     session = cluster.connect();
12 }

驱动里自带了cassandra连接池的配置,将上面的稍作修改

 1 public Cluster cluster;
 2
 3 public Session session;
 4
 5 public void connect()
 6 {
 7     PoolingOptions poolingOptions = new PoolingOptions();
 8     // 每个连接的最大请求数 2.0的驱动好像没有这个方法
 9     poolingOptions.setMaxRequestsPerConnection(HostDistance.LOCAL, 32);
10     // 表示和集群里的机器至少有2个连接 最多有4个连接
11     poolingOptions.setCoreConnectionsPerHost(HostDistance.LOCAL, 2).setMaxConnectionsPerHost(HostDistance.LOCAL, 4)
12             .setCoreConnectionsPerHost(HostDistance.REMOTE, 2).setMaxConnectionsPerHost(HostDistance.REMOTE, 4);
13
14     // addContactPoints:cassandra节点ip withPort:cassandra节点端口 默认9042
15     // withCredentials:cassandra用户名密码 如果cassandra.yaml里authenticator:AllowAllAuthenticator 可以不用配置
16     cluster = Cluster.builder().addContactPoints("192.168.3.89").withPort(9042)
17             .withCredentials("cassandra", "cassandra").withPoolingOptions(poolingOptions).build();
18     // 建立连接
19     // session = cluster.connect("test");连接已存在的键空间
20     session = cluster.connect();
21
22 }

创建键空间和表(这2个最好在搭建cassandra的时候完成)

 1 /**
 2  * 创建键空间
 3  */
 4 public void createKeyspace()
 5 {
 6     // 单数据中心 复制策略 :1
 7     String cql = "CREATE KEYSPACE if not exists mydb WITH replication = {‘class‘: ‘SimpleStrategy‘, ‘replication_factor‘: ‘1‘}";
 8     session.execute(cql);
 9 }
10
11 /**
12  * 创建表
13  */
14 public void createTable()
15 {
16     // a,b为复合主键 a:分区键,b:集群键
17     String cql = "CREATE TABLE if not exists mydb.test (a text,b int,c text,d int,PRIMARY KEY (a, b))";
18     session.execute(cql);
19 }

对test表的CURD操作

 1 /**
 2  * 插入
 3  */
 4 public void insert()
 5 {
 6     String cql = "INSERT INTO mydb.test (a , b , c , d ) VALUES ( ‘a2‘,4,‘c2‘,6);";
 7     session.execute(cql);
 8 }
 9
10 /**
11  * 修改
12  */
13 public void update()
14 {
15     // a,b是复合主键 所以条件都要带上,少一个都会报错,而且update不能修改主键的值,这应该和cassandra的存储方式有关
16     String cql = "UPDATE mydb.test SET d = 1234 WHERE a=‘aa‘ and b=2;";
17     // 也可以这样 cassandra插入的数据如果主键已经存在,其实就是更新操作
18     String cql2 = "INSERT INTO mydb.test (a,b,d) VALUES ( ‘aa‘,2,1234);";
19     // cql 和 cql2 的执行效果其实是一样的
20     session.execute(cql);
21 }
22
23 /**
24  * 删除
25  */
26 public void delete()
27 {
28     // 删除一条记录里的单个字段 只能删除非主键,且要带上主键条件
29     String cql = "DELETE d FROM mydb.test WHERE a=‘aa‘ AND b=2;";
30     // 删除一张表里的一条或多条记录 条件里必须带上分区键
31     String cql2 = "DELETE FROM mydb.test WHERE a=‘aa‘;";
32     session.execute(cql);
33     session.execute(cql2);
34 }
35
36 /**
37  * 查询
38  */
39 public void query()
40 {
41     String cql = "SELECT * FROM mydb.test;";
42     String cql2 = "SELECT a,b,c,d FROM mydb.test;";
43
44     ResultSet resultSet = session.execute(cql);
45     System.out.print("这里是字段名:");
46     for (Definition definition : resultSet.getColumnDefinitions())
47     {
48         System.out.print(definition.getName() + " ");
49     }
50     System.out.println();
51     System.out.println(String.format("%s\t%s\t%s\t%s\t\n%s", "a", "b", "c", "d",
52             "--------------------------------------------------------------------------"));
53     for (Row row : resultSet)
54     {
55         System.out.println(String.format("%s\t%d\t%s\t%d\t", row.getString("a"), row.getInt("b"),
56                 row.getString("c"), row.getInt("d")));
57     }
58 }

查询显示:

时间: 2024-10-13 22:17:51

JAVA操作cassandra数据库的相关文章

Java操作Oracle数据库自建工具库

在学习Java操作Oracle数据库的时候,忽然想到这个可不可以像php那样自己建立一个工具类,这样的话可以大大的减小代码的复杂度.也可以提高工作效率. java如果不能自己建立工具类,那是非常可笑的,但是,在建立的过程中,出现了一些问题,希望在以后不要犯类似的错误. 首先,我们在自建工具类之前必然是先模拟测试的,在这个例子当中,其过程如下: 1:引入Oracle的驱动程序 2:建立OracleTools类,并且定义其成员变量. 3:写OracleTools类的成员方法和构造函数. 4:如果全部

Java操作Sqlite数据库

Java操作Sqlite数据库步骤: 1. 导入Sqlite jdbc 本文使用sqlite-jdbc-3.7.2.jar,下载地址 http://pan.baidu.com/s/1kVHAGdD 2. 编写jdbc连接代码 public class OpSqliteDB { private static final String Class_Name = "org.sqlite.JDBC"; private static final String CallMarkDB_URL = &

java操作MySQL数据库(插入、删除、修改、查询、获取所有行数)

插播一段广告哈:我之前共享了两个自己写的小应用,见这篇博客百度地图开发的两个应用源码共享(Android版),没 想到有人找我来做毕设了,年前交付,时间不是很紧,大概了解了下就接下了,主要用到的就是和服务器端交互,这个我之前没做过,因此接下来的时间里会陆续更 新这一些列的博客,记录学习的点滴.第一篇主要是java读取mysql数据库文件.安装及配置文件稍后会上传到我的百度网盘供大家下载.其他的介绍在网 上都可以找到相关的博客,下面直接给出源代码. mysql建立一个名为“vge_whu”的数据库

java操作redis数据库实例(redis集群)

1.配置redis集群 <?xml version="1.0" encoding="UTF-8"?> <redisCluster> <!--userRoute --> <clusterGroup name="userRoute" selectdb="1"> <server host="10.177.129.16" port="6379"

Java 操作MySql数据库

Java 项目开发中数据库操作是很重要的一个方面,对于初学者来说,MySql是比较容易熟悉的一种常见数据库,这篇文章记录了如何用Java来操作MySql数据库. 第一章 JDBC的概念 JDBC(Java Database Connectivity)是连接Java和数据库的纽带,简单的说,就是Java利用JDBC API屏蔽掉了底层数据库具体实现的差异.对于不同的数据库,Java的操作方式是不同的,这样有两个优点: 简化了访问数据库的程序代码,无须涉及与底层数据库实现相关的细节 可以在同一个Ja

Nodejs操作Cassandra数据库

目录 前言 安装Cassandra Nodejs操作Cassandra 前言 操作系统win10 时间2019年02月 Nodejs版本:node v8.9.3 Cassandra版本:cassandra-3.11.3 参考网址1 安装Cassandra 安装Cassandra数据库 官网下载Cassandra压缩包 解压,并配置环境变量: |操作|变量名|变量值| |:---:|:---|:---| |新建|CASSANDRA_HOME|解压路径| |增加|PATH|解压路径\bin;| 安装

Java操作Oracle数据库以及调用存储过程

操作Oracle数据库 publicclass DBConnection {     //jdbc:oracle:thin:@localhost:1521:orcl     publicstaticfinal String url = "jdbc:oracle:thin:@localhost:1521:ORCL";     publicstatic Connection conn ;         static{         //获取数据库驱动         try {    

java操作mongoDB数据库的简单实例

首先导入mongoDB的jar包 http://pan.baidu.com/s/1bnGMJRD //DataBase.java package com.mongodb.test; import java.net.UnknownHostException; import com.mongodb.DB; import com.mongodb.DBCollection; import com.mongodb.DBCursor; import com.mongodb.DBObject; import

java操作MongoDB数据库

1.如何启动MongoDB数据库? 如图所示:安装好MongoDB之后,文件夹显示如下: MongoDB默认开启27017端口,打开浏览器,输入http://localhost:27017/,显示如下: 启动数据库步骤: (1)cd d:\beiyongkaifa\mongodb\bin (2)输入:mongod --dbpath=D:\beiyongkaifa\mongodb\db,回车.如图1所示: (3)启动另一个cmd,cd d:\beiyongkaifa\mongodb\bin (4)