解决方法
@H_403_7@ CQL附带了一个BEGIN BATCH … APPLY BATCH语句,可以将多个插入组合在一起,以便开发人员可以构建一个这样的批处理请求的字符串并执行它.[ http://www.datastax.com/dev/blog/client-side-improvements-in-cassandra-2-0]
以下对我有用:
PreparedStatement ps = session.prepare( "BEGIN BATCH" + "INSERT INTO messages (user_id,msg_id,title,body) VALUES (?,?,?);" + "INSERT INTO messages (user_id,?);" + "APPLY BATCH" ); session.execute(ps.bind(uid,mid1,title1,body1,uid,mid2,title2,body2,mid3,title3,body3));
如果您事先不知道要执行的语句,可以使用以下语法(Scala):
var statement: PreparedStatement = session.prepare("INSERT INTO people (name,age) VALUES (?,?)") var boundStatement = new BoundStatement(statement) val batchStmt = new BatchStatement() batchStmt.add(boundStatement.bind("User A","10")) batchStmt.add(boundStatement.bind("User B","12")) session.execute(batchStmt)
注意:BatchStatement最多可以保存65536语句.很难理解这一点. 原文链接:/mssql/79323.html