Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cassandra准备了语句-绑定参数两次_Cassandra_Cql_Datastax_Datastax Java Driver - Fatal编程技术网

Cassandra准备了语句-绑定参数两次

Cassandra准备了语句-绑定参数两次,cassandra,cql,datastax,datastax-java-driver,Cassandra,Cql,Datastax,Datastax Java Driver,我想执行一个cql查询。cql字符串如下所示: SELECT * FROM :columnFamilyName WHERE <some_column_name> = :name AND <some_id> = :id; SELECT*FROM:columnFamilyName其中=:name和=:id; 我的应用程序在datastax驱动程序之上有两层抽象。在一个层中,我想绑定前两个参数,在另一个层中,我想绑定最后一个参数。 问题是,如果我绑定前两个参数,就会得到一个

我想执行一个cql查询。cql字符串如下所示:

SELECT * FROM :columnFamilyName WHERE <some_column_name> = :name AND <some_id> = :id;
SELECT*FROM:columnFamilyName其中=:name和=:id;
我的应用程序在datastax驱动程序之上有两层抽象。在一个层中,我想绑定前两个参数,在另一个层中,我想绑定最后一个参数。 问题是,如果我绑定前两个参数,就会得到一个BoundStatement,而我不能绑定另一个参数。我错过什么了吗?能做到吗

我们使用的是datastax驱动程序版本2.0.3

谢谢,
Anatoly。

您应该能够使用BoundStatement.setXXXX(索引,值)将任意数量的参数绑定到BoundStatement,如下所示:

BoundStatement statement = new BoundStatement(query);
statement.setString(0, "value");
statement.setInt(1, 1);
statement.setDate(2, new Date());
ResultSet results = session.execute(statement);
但问题是,您试图使用一个动态列族,其值随要绑定的值而变化。
据我所知,这是不允许的,所以你应该为每个表准备一条语句,然后使用右键语句。

谢谢,我会试试。关于你的最后一条评论,你能给我指一下文档页面吗?请看本页底部Olivier Michallat的回答:仅供参考,他是Datastax Java驱动程序开发人员之一。