Je fais cela pour connecter cassandra.Mais mon code retourne une erreur .. Voici mon code
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());
}
}
}
c'est le journal des erreurs ..
Echec de l'exécution de l'objectif sur le projet CassandraConnection: Impossible de résoudre les dépendances du projet com.mycompany: CassandraConnection: jar: 1.0-SNAPSHOT: Les artefacts suivants n'ont pas pu être résolus: 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: impossible de trouver l'artefact org.specs2: scalaz-effect_2.11.0-SNAPSHOT: jar: 7.0.1-SNAPSHOT -> [Aide 1 ]
Pour voir la trace complète de la pile des erreurs, réexécutez Maven avec le commutateur -e . Relancez Maven en utilisant le commutateur -X pour activer la journalisation de débogage complète.
Pour plus d'informations sur les erreurs et les solutions possibles, veuillez lire les articles suivants: [Aide 1] http://cwiki.Apache.org/confluence/display/MAVEN/DependencyResolutionException
Avez-vous fait des recherches sur le sujet?
Vous avez besoin d’un moyen de communiquer avec cassandra. La meilleure option est d’utiliser une API de haut niveau. Vous avez un large éventail de choix ici, mais lorsque nous examinons la question de haut niveau, il y a en réalité deux choix.
Je vais utiliser pilote CQL de Datastax .
Téléchargez et construisez le pilote à partir du repo github OU de datastax, utilisez maven et ajoutez les dépendances suivantes:
<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>
Choisir Maven est une bonne idée, car il gérera toutes vos dépendances, mais si vous n'utilisez pas Maven, vous en apprendrez au moins sur la gestion des bocaux et la lecture des traces de pile.
Le documentation du pilote avance bien. Si vous êtes coincé à le lire, la documentation contient de nombreux exemples.
Je vais utiliser les deux variables suivantes tout au long des exemples.
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!
Lis
String cqlStatement = "SELECT * FROM local";
for (Row row : session.execute(cqlStatement)) {
System.out.println(row.toString());
}
Créer/Mettre à jour/Supprimer
// 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.
Créer un espace de clé
String cqlStatement = "CREATE KEYSPACE exampkeyspace WITH " +
"replication = {'class':'SimpleStrategy','replication_factor':1}";
session.execute(cqlStatement);
Création d'une ColumnFamily (aka table)
// 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);
Pour vous connecter à cassandra à partir d'un programme Java, vous devez ajouter une dépendance de base au programme. Ajoutez les dépendances suivantes au programme. Liste des dépendances 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>
Programme Java simple pour se connecter avec cassandra à un espace de clés et récupérer les valeurs d'une table
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();
}
}
Repo Hub Git pour le programme en tant que projet maven: GitURL