检索ResultSet中的条目数

时间:2013-10-21 20:07:17

标签: java sqlite resultset

在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;

就像提到的here一样,但结果仍为0。

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

1 个答案:

答案 0 :(得分:5)

javadoc陈述

  

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

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

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