【发布时间】:2016-11-13 14:01:13
【问题描述】:
我希望能够在不遍历结果集的情况下判断 jdbc 查询返回多少记录,即 db-table 行。
我尝试了ResultSet.getFetchSize()-- 但没有像我想象的那样工作:
if (rSet.getFetchSize()==0)
System.out.println("no results returned");
while (rSet.next())
System.out.println(rSet.getString("transactionID"));
rSet.next();
上面的代码 sn-p 打印第一条控制台消息,然后进入循环并迭代以在 1+ 个结果上执行第二条控制台消息。
如何判断获取的记录数? ResultSet.getFetchSize() 是干什么用的?
//-----------------------------------
编辑:希望无需在ResultSet 上进行任何迭代即可告诉此计数。确信这是不可能的。提到的Q的答案是这样说的。
【问题讨论】:
-
fetchSize控制驱动程序在迭代结果时从服务器请求多少行。它与查询返回的实际行数没有任何关系。 -
你真的应该尽量避免需要知道结果集的总行数,得到它是非常昂贵的;只需在您移动时处理您的行。如果要检查是否至少有一行,请调用
rs.next()并使用do..while循环而不是while循环来处理其余行。