如何使用DataStax Java Cassandra驱动程序检查空结果集?
假设我正在执行以下查询:“SELECT * FROM my_table WHERE mykey=something”
有很大的机会查询不匹配。以下代码不起作用:
if (rs != null)
rs.one().getString("some_column");
你离正确答案很近,正确的解决方案是:
Row r = rs.one();
if (r != null)
r.getString("some_column");
无论是否有返回结果,驱动程序都将始终返回一个结果集。 one() 的文档说明如果没有返回行,则rs.one()返回null。
您还可以使用getAvailableWithoutFetching(),它返回结果集中未获取的行数。 由于pageSize必须>=1,因此如果至少有1行,则可以确保这将始终返回大于0的值。
您还可以检查rs.isExhausted()
的值,以确定结果集中是否有其他数据...
rs.isExhausted
更好? - Martin Schröder