私はこれを行って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を使用することです。ここには幅広い選択肢がありますが、高度な観点から見ると、実際には2つの選択肢があります。
datastaxのCQLドライバー を使用します。
Datastaxのgithubリポジトリからドライバーをダウンロードしてビルドします[〜#〜] or [〜#〜]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の管理とスタックトレースの読み取りについて学習します。
ドライバーのドキュメント は順調に進んでいます。あなたがそれを読んで立ち往生した場合、ドキュメントには多くの例が含まれています。
例全体で次の2つの変数を使用します。
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);
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);
cassandra from Javaプログラムから接続するには、プログラムに基本的な依存関係を追加する必要があります。プログラムに次の依存関係を追加します。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>
Java cassandra=キースペースに接続し、テーブルの値を取得するプログラム
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 Hubリポジトリ: GitURL