获取 Java 结果集中的行计数

2022-09-01 11:59:13

有谁知道从MySQL数据库返回的Java结果集中的行数的更好方法?返回的结果集不会是从数据库中读取的总行数,因此我认为我不能使用SQL的聚合函数。COUNT

public static int getResultSetRowCount(ResultSet resultSet) {
    int size = 0;
    try {
        resultSet.last();
        size = resultSet.getRow();
        resultSet.beforeFirst();
    }
    catch(Exception ex) {
        return 0;
    }
    return size;
}

答案 1

更好的答案是,在将 ResultSet 成功加载到对象或集合中之前,请忘记行数。您可以使用这两个选项中的任何一个来保留行数的计数。

请务必在尽可能窄的方法范围内关闭 ResultSets(以及所有 SQL 资源,如连接和语句)。这意味着不要将 ResultSet 从持久性层中传递出来。最好使用集合大小() 调用获取行数。

停止思考数据库,开始思考对象。Java是一种面向对象的语言。


答案 2

您可以执行

SELECT FOUND_ROWS()

在执行 SELECT 语句以查找行计数后立即执行。


推荐