关于使用java驱动,建议使用eclipse+maven创建,比如我们创建一个cassandra.test的工程。在pom.xml里面加入
<dependency>
<groupId>com.datastax.cassandra</groupId>
<artifactId>cassandra-driver-core</artifactId>
<version>2.1.0</version>
</dependency>
如果环境不允许使用maven,那么就自己找依赖包吧:cassandra-driver-core-2.1.0.jar、netty-3.9.0.Final.jar、guava-16.0.1.jar、metrics-core-3.0.2.jar和slf4j-api-1.7.5.jar。
如果需要远程连接,那么cassandra.yaml里面的rpc_address就需要改变为您当前环境实际的IP地址,否则会报错!
JAVA示例代码package com.maven.Cassandra;
import java.util.UUID;
import com.datastax.driver.core.BoundStatement;
import com.datastax.driver.core.Cluster;
import com.datastax.driver.core.Host;
import com.datastax.driver.core.Metadata;
import com.datastax.driver.core.PreparedStatement;
import com.datastax.driver.core.ResultSet;
import com.datastax.driver.core.Row;
import com.datastax.driver.core.Session;
public class CassandraText {
private Cluster cluster;
private Session session;
public Cluster getCluster() {
return cluster;
}
public void setCluster(Cluster cluster) {
this.cluster = cluster;
}
public Session getSession() {
return session;
}
public void setSession(Session session) {
this.session = session;
}
/**
* 连接节点
*
* @param node
*/
public void connect(String node) {
cluster = Cluster.builder().addContactPoint(node).build();
Metadata metadata = cluster.getMetadata();
System.out.printf("Connected to cluster: %s\n",
metadata.getClusterName());
for (Host host : metadata.getAllHosts()) {
System.out.printf("Datatacenter: %s; Host: %s; Rack: %s\n",
host.getDatacenter(), host.getAddress(), host.getRack());
}
this.session = cluster.connect();
}
/**
* 创建keyspace 创建表
*/
public void createTable(){
getSession().execute("CREATE KEYSPACE IF NOT EXISTS pimin_net "+
"WITH REPLICATION = {'class': 'SimpleStrategy','replication_factor':1};");
getSession().execute("USE pimin_net");
getSession().execute("CREATE TABLE IF NOT EXISTS users (id uuid,first_name varchar,PRIMARY KEY (id))");
}
/**
* 插入数据
*/
public void insertData() {
PreparedStatement insertStatement = getSession().prepare(
"INSERT INTO pimin_net.users "
+ "(id, first_name) "
+ "VALUES (?, ?);");
BoundStatement boundStatement = new BoundStatement(insertStatement);
getSession()
.execute(
boundStatement.bind(
UUID.fromString("756716f7-2e54-4715-9f00-91dcbea6cf50"),
"pi"));
}
/**
* 查询数据
*/
public void loadData() {
ResultSet resultSet = getSession().execute(
"SELECT first_name FROM pimin_net.users;");
for (Row row : resultSet) {
System.out.println(row.getString("first_name"));
}
System.out.println();
}
public void close() {
cluster.close();
}
public static void main(String[] args) {
CassandraText client = new CassandraText();
client.connect("host");
// client.createTable();
// client.insertData();
client.loadData();
client.session.close();
client.close();
}
}
本文转载于《Cassandra 2.x中文教程(22):使用Java驱动操作Cassandra》为【屁民部落】原创/翻译文章