在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())
循环用于测试目的。没有循环的行为完全相同(即 0
)。
javadoc 状态
返回当前行访问号;如果没有当前行,则返回 0
了所有带有ResultSet#next()
的行后,没有当前行。
使用count
值作为行数。或者使用SELECT count(*) ...
样式查询。