如何检索ResultSet大小

时间:2016-07-11 14:53:35

标签: java jdbc

我希望能够告诉有多少记录,即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的答案是这样说的。

1 个答案:

答案 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?

How do I get the size of a java.sql.ResultSet?