我使用datastax java驱动程序与cassandra进行通信,我要求将 Map 插入到cassandra中,但是以每个 key,value of map 的形式作为单独的记录 . 下面是我的示例表模式
CREATE TABLE emp (
key int PRIMARY KEY,
value text
)
以下是我正在使用的示例代码
String insertStatement = "INSERT INTO test.emp(key,value) values (?,?)";
PreparedStatement preStmt = session.prepare(insertStatement);
BatchStatement batchStmt = new BatchStatement();
for (Map.Entry<Integer, String> entry : dataMap.entrySet()) {
Integer key = entry.getKey();
String value = entry.getValue();
BoundStatement boundStmt = preStmt.bind(key, value);
batchStmt.add(boundStmt);
}
session.executeAsync(batchStmt);
上面的代码工作但现在我再次遍历 Map (因为其他应用程序将发送数据的映射,我不能在将数据推入映射时绑定params)和绑定值到preparedStatement .
在这里我的要求不是再次迭代map而且绑定params还有其他任何简单的方法,比如我们发送map和准备语句它会将数据作为单独的记录插入到cassandra