Cassandra接続を正常に作成し、テーブル emp があるキースペース名シンプレックスを作成しました。今、 emp テーブルにランダムに値を挿入したい..しかし、それは示しています
列名/値の不一致エラー。エラーを理解できません。これは私のコードです
import java.util.Random;
import com.datastax.driver.core.Cluster;
import com.datastax.driver.core.Host;
import com.datastax.driver.core.Metadata;
import com.datastax.driver.core.ResultSet;
import com.datastax.driver.core.Row;
import com.datastax.driver.core.Session;
public class RandomTableInsertion {
private Session session;
private Cluster cluster;
Random r=new Random();
public void connect(String node ){
cluster=Cluster.builder().addContactPoint(node).build();
Metadata metadata=cluster.getMetadata();
System.out.println("Cassandra Connection Established");
System.out.printf("Connected to cluster:%s\n",metadata.getClusterName());
for(Host host:metadata.getAllHosts()){
System.out.printf("dataCenter :%s; Host: %s; Rack:%s\n",host.getDatacenter(),host.getAddress(),host.getRack());
session = cluster.connect("simplex");
}
}
public void close() {
cluster.shutdown();
}
public void duplicateSchema() {
session.execute("CREATE KEYSPACE duplex WITH replication " +
"= {'class':'SimpleStrategy', 'replication_factor':1};");
session.execute("CREATE TABLE simplex.emp (" + "id int PRIMARY KEY,"
+ "roll int," + "marks1 int," + "marks2 int,"
+"marks3 int" + ");");
System.out.println("Schema is created");
}
public void loadData() {
session.execute("INSERT INTO emp (id, roll, marks1, marks2, marks3) "
+ "VALUES ("+r.nextInt(2)+ r.nextInt(2)+ r.nextInt(2)+r.nextInt(3) +r.nextInt(2)+")");
System.out.println("Table Creation Successful");
}
public static void main(String[] args) {
RandomTableInsertion random=new RandomTableInsertion();
random.connect("127.0.0.1");
//random.createSchema();
//random.duplicateSchema();
random.loadData();
random.close();
}
}
これは私のコードです。列と値が一致しない場所を理解できません。誰か助けてください....