我希望能够告诉有多少记录,即db-table行,jdbc查询返回而不迭代结果集。
我试过ResultSet.getFetchSize()
- 然而却没有像我想象的那样工作:
if (rSet.getFetchSize()==0)
System.out.println("no results returned");
while (rSet.next())
System.out.println(rSet.getString("transactionID"));
rSet.next();
上面的代码片段打印出第一个控制台消息,然后进入循环并迭代以在1+结果上执行第二个控制台消息。
如何判断提取的记录数量?什么是ResultSet.getFetchSize()
?
// -----------------------------------
编辑:希望在ResultSet
上没有任何迭代的情况下判断此计数。但是他确信这是不可能的。引用Q的答案是这样说的。
答案 0 :(得分:2)
ResultSet.getFetchSize()
向底层数据库驱动程序建议应该一次通过网络获取多少条记录,但它与SQL结果集的大小没有任何关系。
如果您想了解结果的大小,可以尝试执行COUNT
查询:
SELECT COUNT(*) FROM yourTable WHERE <conditions> ...
进一步阅读:
What does Statement.setFetchSize(nSize) method really do in SQL Server JDBC driver?