如何使用datastax java cassandra驱动程序检查空结果集?
假设我正在执行以下查询“SELECT * FROM my_table WHERE mykey = something”
很有可能查询不匹配。以下代码不起作用:
if (rs != null)
rs.one().getString("some_column");
答案 0 :(得分:16)
你非常接近,正确的解决方案是:
Row r = rs.one();
if (r != null)
r.getString("some_column");
无论是否有任何返回的结果,驱动程序将始终返回结果集。 one()的文档指出,如果没有返回任何行,则rs.one()将返回null。
您还可以使用getAvailableWithoutFetching()返回结果集中的行数,而不会获取更多行。由于pageSize必须为> = 1,因此如果至少有1行,则可以确保它始终返回大于0的值。
答案 1 :(得分:2)
您还可以检查rs.isExhausted()
的值,以确定结果集中是否还有其他数据...