Cassandra連接配接Java
Cassandra連接配接Java 1、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.flx.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.1.2</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;
/**
* 連接配接Cassandra資料庫
* @author Administrator
*
*/
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();
//getAllHosts() 擷取所有節點連接配接的資訊
for (Host host : metadata.getAllHosts()) {
System.out.println("------" + host.getAddress());
}
System.out.println("======================");
//Metadata原資料對象 輸出鍵空間
for (KeyspaceMetadata keyspaceMetadata : metadata.getKeyspaces()) {
System.out.println("--------" + keyspaceMetadata.getName());
}
//關閉程序
cluster.close();
}
}
3、cluster實作增删改查
package com.xxx.test;
import java.util.List;
import com.datastax.driver.core.ResultSet;
import com.datastax.driver.core.Cluster;
import com.datastax.driver.core.Row;
import com.datastax.driver.core.Session;
/**
* 實作增删改查的操作
* Cluster
* @author Administrator
*
*/
public class SecondDemo {
public static void main(String[] args) {
Cluster cluster = null;
Session session = null;
try {
//定義cluster類
cluster = Cluster.builder().addContactPoint("127.0.0.1").build();
//需要擷取session對象
session = cluster.connect();
//建立鍵空間 if not exists 防止發生錯誤
String createKeySpaceCQL =
"create keyspace if not exists testkeyspace1 with "
+ "replication={'class':'SimpleStrategy','replication_factor':1}";
session.execute(createKeySpaceCQL);
//建立列族 ,testkeyspace1.student指定鍵空間的student表
String createTableCQL =
"create table if not exists testkeyspace1.student(name varchar primary key , age int)";
session.execute(createTableCQL);
//插入資料
String insertCQL =
"insert into testkeyspace1.student(name,age) values('zhang',23)";
session.execute(insertCQL);
//查詢
String queryCQL =
"select * from testkeyspace1.student";
//同步查詢 ,傳回結果是ResultSet
ResultSet rs = session.execute(queryCQL);
List<Row> dataList = rs.all();
for (Row row : dataList) {
System.out.println("------name" + row.getString("name"));
System.out.println("------age" + row.getInt("age"));
}
//修改
String updateCQL =
"update testkeyspace1.student set age=40 where name='zhang'";
session.execute(updateCQL);
rs = session.execute(queryCQL);
dataList = rs.all();
for (Row row : dataList) {
System.out.println("------name" + row.getString("name"));
System.out.println("------age" + row.getInt("age"));
}
//删除資料
String deleteCQL=
"delete from testkeyspace1.student where name='zhang'";
session.execute(deleteCQL);
rs = session.execute(queryCQL);
dataList = rs.all();
for (Row row : dataList) {
System.out.println("------name" + row.getString("name"));
System.out.println("------age" + row.getInt("age"));
}
} catch (Exception e) {
e.printStackTrace();
}finally{
//關閉session和cluster
session.close();
cluster.close();
}
}
}
4、QueryBuilder 增删改查
package com.xxx.test;
import com.datastax.driver.core.Cluster;
import com.datastax.driver.core.ResultSet;
import com.datastax.driver.core.Row;
import com.datastax.driver.core.Session;
import com.datastax.driver.core.querybuilder.Insert;
import com.datastax.driver.core.querybuilder.QueryBuilder;
import com.datastax.driver.core.querybuilder.Select.Where;
/**
* QueryBuilder 增删改查
* @author Administrator
*
*/
public class ThirdDemo {
public static void main(String[] args) {
Cluster cluster = null;
Session session = null;
try {
//定義cluster類
cluster = Cluster.builder().addContactPoint("127.0.0.1").build();
//需要擷取session對象
session = cluster.connect();
//新增資料 指定鍵空間和表
Insert insert=
QueryBuilder.insertInto("testkeyspace1", "student").value("name", "xiaoming").value("age", 23);
session.execute(insert);
//查詢資料
System.out.println("------查詢資料------");
Where select =
QueryBuilder.select().all().from("testkeyspace1", "student").where(QueryBuilder.eq("name", "xiaoming"));
System.out.println(select);
ResultSet rs = session.execute(select);
for (Row row : rs.all()) {
System.out.println("-----name:" + row.getString("name"));
System.out.println("-----age:" + row.getInt("age"));
}
//更新資料
System.out.println("------更新資料------");
//把名字是小明的人的年齡改成50
com.datastax.driver.core.querybuilder.Update.Where update=
QueryBuilder.update("testkeyspace1", "student").with(QueryBuilder.set("age", 50)).where(QueryBuilder.eq("name", "xiaoming"));
System.out.println(update);
session.execute(update);
//輸出資料
rs = session.execute(select);
for (Row row : rs.all()) {
System.out.println("-----name:" + row.getString("name"));
System.out.println("-----age:" + row.getInt("age"));
}
//删除資料
System.out.println("------删除資料------");
com.datastax.driver.core.querybuilder.Delete.Where delete = QueryBuilder.delete().from("testkeyspace1", "student").where(QueryBuilder.eq("name", "xiaoming"));
System.out.println(delete);
session.execute(delete);
//輸出資料
rs = session.execute(select);
for (Row row : rs.all()) {
System.out.println("-----name:" + row.getString("name"));
System.out.println("-----age:" + row.getInt("age"));
}
} catch (Exception e) {
e.printStackTrace();
}finally{
//關閉session和cluster
session.close();
cluster.close();
}
}
}
5、PreparedStatement
package com.xxx.test;
import java.util.List;
import com.datastax.driver.core.Cluster;
import com.datastax.driver.core.PreparedStatement;
import com.datastax.driver.core.ResultSet;
import com.datastax.driver.core.Row;
import com.datastax.driver.core.Session;
/**
* PreparedStatement 增删改查
* @author Administrator
*
*/
public class FourthDemo {
public static void main(String[] args) {
Cluster cluster = null;
Session session = null;
try {
//定義cluster類
cluster = Cluster.builder().addContactPoint("127.0.0.1").build();
//需要擷取session對象
session = cluster.connect();
PreparedStatement statement =
session.prepare(
"insert into testkeyspace1.student(name,age) values(?,?)");
//為占位符指定值
session.execute(statement.bind("wangwu",23));
//查詢
String queryCQL =
"select * from testkeyspace1.student";
ResultSet rs = session.execute(queryCQL);
List<Row> dataList = rs.all();
for (Row row : dataList) {
System.out.println("------name" + row.getString("name"));
System.out.println("------age" + row.getInt("age"));
}
} catch (Exception e) {
e.printStackTrace();
}finally{
//關閉session和cluster
session.close();
cluster.close();
}
}
}