你对此事做过任何研究吗?
选择司机
你需要一种与cassandra通信的方式,最好的选择是使用高级API。你在这里有广泛的选择,但是当我们从高层次的角度来看待它时,实际上有两个选择。
-
基于 CQL 的驱动程序 - 对 thrift 功能的更高级别抽象。同样是较新的工具,为cassandra提供支持/文档的公司建议新的cassandra应用程序基于CQL。
-
基于节俭的驱动器 - 可以访问低级存储,因此更容易出错。
我将使用 datastax 的 CQL 驱动程序。
从 datastax 的 github 存储库下载并构建驱动程序,或者使用 maven 并添加以下依赖项:
<dependency>
<groupId>com.datastax.cassandra</groupId>
<artifactId>cassandra-driver-core</artifactId>
<version>2.1.3</version>
</dependency>
<dependency>
<groupId>com.datastax.cassandra</groupId>
<artifactId>cassandra-driver-mapping</artifactId>
<version>2.1.2</version>
</dependency>
选择 maven 是个好主意,因为它会为你管理所有依赖项,但是如果你不使用 maven,至少你会学习如何管理 jar 和阅读堆栈跟踪。
法典
驱动程序的文档显示得很好。如果您无法通读它,文档包含许多示例。
我将在整个示例中使用以下两个变量。
String serverIP = "127.0.0.1";
String keyspace = "system";
Cluster cluster = Cluster.builder()
.addContactPoints(serverIP)
.build();
Session session = cluster.connect(keyspace);
// you are now connected to the cluster, congrats!
读
String cqlStatement = "SELECT * FROM local";
for (Row row : session.execute(cqlStatement)) {
System.out.println(row.toString());
}
创建/更新/删除
// for all three it works the same way (as a note the 'system' keyspace cant
// be modified by users so below im using a keyspace name 'exampkeyspace' and
// a table (or columnfamily) called users
String cqlStatementC = "INSERT INTO exampkeyspace.users (username, password) " +
"VALUES ('Serenity', 'fa3dfQefx')";
String cqlStatementU = "UPDATE exampkeyspace.users " +
"SET password = 'zzaEcvAf32hla'," +
"WHERE username = 'Serenity';";
String cqlStatementD = "DELETE FROM exampkeyspace.users " +
"WHERE username = 'Serenity';";
session.execute(cqlStatementC); // interchangeable, put any of the statements u wish.
其他有用的代码
创建密钥空间
String cqlStatement = "CREATE KEYSPACE exampkeyspace WITH " +
"replication = {'class':'SimpleStrategy','replication_factor':1}";
session.execute(cqlStatement);
创建列家族(又名表)
// based on the above keyspace, we would change the cluster and session as follows:
Cluster cluster = Cluster.builder()
.addContactPoints(serverIP)
.build();
Session session = cluster.connect("exampkeyspace");
String cqlStatement = "CREATE TABLE users (" +
" username varchar PRIMARY KEY," +
" password varchar " +
");";
session.execute(cqlStatement);