一、小的案例
1、创建maven工程
pom.xml文件中
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.xxx.test</groupId>
<artifactId>CassandraDemo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>cassandra</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.datastax.cassandra</groupId>
<artifactId>cassandra-driver-core</artifactId>
<version>3.0.0</version>
</dependency>
</dependencies>
</project>
2、创建一个类
package com.xxx.test;
import com.datastax.driver.core.Cluster;
import com.datastax.driver.core.Host;
import com.datastax.driver.core.KeyspaceMetadata;
import com.datastax.driver.core.Metadata;
public class FirstDemo {
public static void main(String[] args) {
Cluster cluster =
Cluster.builder().addContactPoint("127.0.0.1").withPort(9042).build();
Metadata metadata = cluster.getMetadata();
for (Host host : metadata.getAllHosts()) {
System.out.println("------" + host.getAddress());
}
System.out.println("======================");
for (KeyspaceMetadata keyspaceMetadata : metadata.getKeyspaces()) {
System.out.println("--------" + keyspaceMetadata.getName());
}
cluster.close();
}
}
运行
结果:
如果出现问题请参考:https://blog.csdn.net/qq_28289405/article/details/80419144
二、与Cassandra交互的常用的类
1、常用的类:
2、展开讨论
①、Cluster
这段代码添加了两个数据节点,同时设置了重连策略和重试策略,还有Cassandra数据库的Configuration属性。
当执行CQL查询的时候,如果查询失败或是没有查询到数据,这个重试策略就会告诉Java驱动怎么去做!
当数据节点突然连接不上,比如宕机了,那么重连策略将会定义如何重新连接这个宕机节点!
②、Session
主要在Cluster类连接成功之后会返回一个全局的session变量;session主要是执行CQL语句!
同步执行就是会产生阻塞,假如执行多次CQL查询,那么后面的查询请求必须等待前面的语句执行完毕才会执行,这种查询方式返回的结果是ResultSet !
异步执行就是多次请求之间自己执行自己的,互不影响,他的返回结果是ResultSetFueure !
③、ResultSet 和ResultSetFuture
④、Row
可以获取String、int类型的
⑤、PerparedStatement
它可以预定CQL语句,它可以使用“?”这个符号,先占一个位,然后后面再设置对应的值;当一条CQL要被多次使用的时候,就可以使用PerparedStatement 。
⑥、Statement---它用来封装CQL语句
⑦、QueryBuilder
SELECT--all() 获取所有语句
distinct()提供了条件排除功能
where()提供了条件设置功能
参考其他资料!!