1

在我的示例应用程序中,以下代码段工作正常。

SELECT_CQL = "SELECT * FROM " + STREAM_NAME_IN_CASSANDRA + " WHERE '" + CONTEXT_ID_COLUMN + "'=?";
Connection connection = getConnection();
statement = connection.prepareStatement(SELECT_CQL);
statement.setString(1, "123");
resultSet = statement.executeQuery();

但是当我尝试向 where 子句添加另一个参数时,查询什么也不返回!

SELECT_CQL = "SELECT * FROM " + STREAM_NAME_IN_CASSANDRA + " WHERE '" + CONTEXT_ID_COLUMN + "'=? AND '"+TIMESTAMP_COLUMN+"'=?";
Connection connection = getConnection();
statement = connection.prepareStatement(SELECT_CQL);
statement.setString(1, "123");
statement.setString(2, "1390996577514");
resultSet = statement.executeQuery();

当我在 cqlsh 终端中尝试精确查询时,它工作正常。

4

1 回答 1

1
statement.setString(2, "1390996577514");

仔细检查您的数据类型TIMESTAMP_COLUMN并确保它是一个字符串。否则,您将需要使用适当的“设置”方法。前任:

statement.setLong(2, 1390996577514L);
于 2014-01-30T17:20:15.927 回答