如何使用Java类连接Cassandra

我这样做是为了连接cassandra。但是我的代码返回了错误。这是我的代码

public class CassandraConnection {

public static void main(String[] args) {

String serverIp = "166.78.10.41";

String keyspace = "gamma";

CassandraConnection connection;

Cluster cluster = Cluster.builder()

.addContactPoints(serverIp)

.build();

Session session = cluster.connect(keyspace);

String cqlStatement = "SELECT * FROM TestCF";

for (Row row : session.execute(cqlStatement)) {

System.out.println(row.toString());

}

}

}

这是错误日志..

无法在项目CassandraConnection上执行目标:无法解析项目com.mycompany:CassandraConnection:jar:1.0-SNAPSHOT的依赖项:无法解析以下工件:org.specs2:scalaz-

effect_2.11.0-SNAPSHOT:jar:7.0。 1-SNAPSHOT,org.scalaz:scalaz-

effect_2.9.3:jar:7.1.0-SNAPSHOT:找不到工件org.specs2:scalaz-

effect_2.11.0-SNAPSHOT:jar:7.0.1-SNAPSHOT-> [帮助1 ]

要查看错误的完整堆栈跟踪,请使用-e开关重新运行Maven。使用-X开关重新运行Maven以启用完整的调试日志记录。

有关错误和可能的解决方案的更多信息,请阅读以下文章:[帮助1]

http://cwiki.apache.org/confluence/display/MAVEN/DependencyResolutionException

回答:

您对此事有研究吗?

回答:

您需要一种与cassandra通信的方法,最好的选择是使用高级API。您在这里有多种选择,但是当我们从较高的角度来看时,实际上有两种选择。

  1. -节俭功能的高级抽象。同样,较新的工具(为cassandra提供支持/文档​​的公司)建议新的cassandra应用程序基于CQL。
  2. -可以访问低级存储,因此更容易出错。

我将使用datastax的CQL驱动程序。

从datastax的github repo下载并构建驱动程序, 使用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);

以上是 如何使用Java类连接Cassandra 的全部内容, 来源链接: utcz.com/qa/403855.html

回到顶部