在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
)。
答案 0 :(得分:5)
javadoc陈述
返回当前行号;如果没有当前行,则为0
在您访问ResultSet#next()
的所有行后,没有当前行。
使用count
值作为行数。或者使用SELECT count(*) ...
样式查询。