Cassandra Datastax驱动程序未通过prepare返回行
我使用的是卡桑德拉1.2.5和二级索引。当我运行prepared语句时,没有返回任何数据。我有数据。对于索引列,我也有重复的值。我所做的是根据用户id重新运行视频id列表。表中描述如下: [default@video]描述视频 警告:“描述”输出中有意省略CQL3表。 有关详细信息,请参阅Cassandra Datastax驱动程序未通过prepare返回行,cassandra,Cassandra,我使用的是卡桑德拉1.2.5和二级索引。当我运行prepared语句时,没有返回任何数据。我有数据。对于索引列,我也有重复的值。我所做的是根据用户id重新运行视频id列表。表中描述如下: [default@video]描述视频 警告:“描述”输出中有意省略CQL3表。 有关详细信息,请参阅 ColumnFamily: videos Key Validation Class: org.apache.cassandra.db.marshal.IntegerType Default colum
ColumnFamily: videos
Key Validation Class: org.apache.cassandra.db.marshal.IntegerType
Default column value validator: org.apache.cassandra.db.marshal.IntegerType
Columns sorted by: org.apache.cassandra.db.marshal.UTF8Type
GC grace seconds: 864000
Compaction min/max thresholds: 4/32
Read repair chance: 0.1
DC Local Read repair chance: 0.0
Populate IO Cache on flush: false
Replicate on write: true
Caching: ALL
Bloom Filter FP chance: default
Built indexes: [videos.videos_user_id_idx]
Column Metadata:
Column Name: video_id
Validation Class: org.apache.cassandra.db.marshal.IntegerType
Column Name: user_id
Validation Class: org.apache.cassandra.db.marshal.IntegerType
Index Name: videos_user_id_idx
Index Type: KEYS
Compaction Strategy: org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy
Compression Options:
sstable_compression: org.apache.cassandra.io.compress.SnappyCompressor
我的代码如下所示:
int并发=3;
//final BoundStatement query=null;
试一试{
//创建到主机的会话
Cluster Cluster=new Cluster.Builder().addContactPoints(String.valueOf(“localhost”)).build()
注意:即使我更改语句以将?替换为值9,我仍然没有返回任何行
你知道我做错了什么吗
谢谢,
-Tony尝试使用以下代码检索数据:
Cluster cluster = Cluster.builder()
.addContactPoint("127.0.0.1")
// .addContactPoint("some.other.ip")
.build();
Session session = cluster.connect();
String statement = "SELECT * FROM pixel.user;";
// String statement = "SELECT video_id from video.videos WHERE user_id=9";
session.execute(statement);
ResultSet rs = session.execute(statement);
for(Row r : rs.all())
System.out.println(r.toString());
一旦掌握了基本知识,就可以开始绑定语句了:
int user_id = 9;
String statement = "SELECT * from video.videos WHERE user_id=?";
PreparedStatement pStatement = session.prepare(statement);
BoundStatement boundStatement = new BoundStatement(pStatement);
PreparedStatement ps = session.prepare(statement);
BoundStatement bs = ps.bind();
bs.bind(user_id); // a csv list: bs.bind(9, "string val of second ?, etc...");
// session.execute(bs);
ResultSet rs = session.execute(bs);
int user_id = 9;
String statement = "SELECT * from video.videos WHERE user_id=?";
PreparedStatement pStatement = session.prepare(statement);
BoundStatement boundStatement = new BoundStatement(pStatement);
PreparedStatement ps = session.prepare(statement);
BoundStatement bs = ps.bind();
bs.bind(user_id); // a csv list: bs.bind(9, "string val of second ?, etc...");
// session.execute(bs);
ResultSet rs = session.execute(bs);