1

在一些关于 SO 的答案中,建议使用ResultSet' 函数getRow()来获取查询结果中的条目数。但是,下面的代码

private static int getSizeOfResultSet(ResultSet result) throws SQLException{
    if(result != null){
        int count = 0;
        while(result.next()){
            count++;
        }
        System.out.println("Count of resultset is " + result.getRow() + " and count " + count);
            return result.getRow();
    }else{
        System.out.println("Result is null");
        return 0;
    }
}

正在返回我的东西,比如

Count of resultset is 0 and count 1

确定条目存在时(在 JUnit 测试用例中)。请注意,这个项目必须符合 Java6 标准,所以也许这就是问题所在。getRow()使用该功能有什么需要考虑的吗?

此外,我尝试过

result.last();
int c = result.getRow();
result.beforeFirst();
return c;

就像这里提到的,但结果仍然是 0。

编辑:我应该提到while(result.next())-loop 用于测试目的。没有循环的行为完全相同(即0)。

4

1 回答 1

5

javadoc 状态

返回当前行号;0 如果没有当前行

在您访问了所有ResultSet#next()没有当前行的行之后。

使用您的count值作为行数。或者使用SELECT count(*) ...样式查询。

于 2013-10-21T20:09:02.543 回答