12

我使用 datastax 作为连接到 cassandra 的客户端。我已通过 Java 成功连接到 cassandra 集群/键空间/列族。我正在尝试通过 java 对 cassandra 列族进行一些查询。对我来说,它适用于简单的查询,例如

ResultSet results = session.execute("select * from demodb.customer where id = 1");

现在我想从用户那里获取 id 参数并将其传递给session.execute(); 陈述。我应该怎么做?

4

2 回答 2

18

下面是使用准备好的语句插入有关图像的数据的代码示例。

PreparedStatement statement = getSession().prepare(
                               "INSERT INTO pixelstore.image " +
                               "(image_name, " +
                               " upload_time, " + 
                               " upload_by, " + 
                               " file_type, " + 
                               " file_size" +
                               ") VALUES (?, ?, ?, ?, ?);"); 

// create the bound statement and initialise it with your prepared statement
BoundStatement boundStatement = new BoundStatement(statement);

session.execute( // this is where the query is executed
  boundStatement.bind( // here you are binding the 'boundStatement'
    "background", TimeUtil.getTimeUUID(),  "lyubent", "png", "130527"));

最近有两篇关于 cassandra 星球的博客文章,其中包含驱动程序可以做什么的演示,它们包含代码示例,因此请查看它们:

  1. 使用 Cassandra 和 DataStax Java 驱动程序的物化视图
  2. 使用 DataStax Java 驱动程序和 Cassandra 1.2 工作的小型 Java 应用程序
于 2013-07-02T08:42:59.637 回答
0

您需要创建一个准备好的语句。然后,您需要将该语句与您从用户那里获得的 ID 值绑定。然后就可以执行绑定语句了。

于 2013-07-02T07:08:40.950 回答