Cassandra连接Java(一)

8 篇文章 0 订阅
7 篇文章 0 订阅

一、小的案例

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()提供了条件设置功能





参考其他资料!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值