我这样做是为了连接cassandra.But,我的代码正在返回一个错误。这是我的密码
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());
}
}
}这是错误日志。
未能对项目com.mycompany:CassandraConnection:jar:1.0-SNAPSHOT:执行目标:无法解决项目CassandraConnection的依赖关系,无法解决下列工件: 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 -> Help 1 要查看错误的完整堆栈跟踪,请使用-e开关重新运行Maven。使用-X开关重新运行Maven以启用完全调试日志记录。 有关错误和可能的解决方案的更多信息,请阅读以下文章:帮助1
发布于 2013-06-01 11:04:04
你对这件事做过调查吗?
挑选司机
您需要一种与cassandra通信的方法,最好的选择是使用高级API。你在这里有很多选择,但是当我们从高水平的预感来看它时,实际上有两种选择。
我要用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,至少您将了解如何管理jars和读取堆栈跟踪。
代码
司机文件进展得很好。如果您被卡住了,请阅读它,文档中包含许多示例。
我将在整个示例中使用以下两个变量。
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());
}Create/Update/Delete
// 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);创建ColumnFamily (又名表)
// 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);发布于 2018-10-24 13:50:31
要从java程序连接cassandra,您需要向程序添加一些基本的依赖项。将下列依赖项添加到程序。Maven依赖项列表:
<dependency>
<groupId>com.datastax.cassandra</groupId>
<artifactId>cassandra-driver-core</artifactId>
<version>3.6.0</version>
</dependency>
<dependency>
<groupId>com.datastax.cassandra</groupId>
<artifactId>cassandra-driver-mapping</artifactId>
<version>3.6.0</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.25</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>1.7.25</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>21.0</version>
</dependency>
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-all</artifactId>
<version>4.1.20.Final</version>
</dependency>
<dependency>
<groupId>com.codahale.metrics</groupId>
<artifactId>metrics-core</artifactId>
<version>3.0.2</version>
</dependency>与cassandra连接到键空间并检索表值的简单java程序
import com.datastax.driver.core.Cluster;
import com.datastax.driver.core.Row;
import com.datastax.driver.core.Session;
public class Test {
public static void main(String[] args) {
String serverIp = "127.0.0.1";
String keyspace = "test";
Cluster cluster = Cluster.builder()
.addContactPoints(serverIp)
.build();
Session session = cluster.connect(keyspace);
String cqlStatement = "SELECT * FROM emp";
for (Row row : session.execute(cqlStatement)) {
System.out.println(row.toString());
}
session.close();
}
}作为maven项目的程序的Git集线器回购:GitURL
https://stackoverflow.com/questions/16870502
复制相似问题