javaresult结果⾏数_如何取得ResultSet的⾏数
如果你想的取得⼀个结果集的⾏数,怎么办?
在ResultSet对象⾥⾯,我们不到取得结果⾏数的办法。
其实我们通常的解决⽅法⽆⾮有⼀下⼏种:
[1]
resultset 遍历Connection con=....
Statement stmt = ateStatement();
String sqlStr = "count(*) as total ";
ResultSet rst = uteQuery(sqlStr);
<();
int total = Int("total");
缺点:如果想要遍历结果集,你不得不在执⾏⼀次查询,取得结果集。
[2]
String accQrySql = "select * from accounts";
Connection con = Connection();
Statement stmt = ateStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
ResultSet rst = uteQuery(accQrySql);
你可以通过下⾯的⽅法来取得结果集的记录数⽬
rst.last();
int total = Row();
这时,你可以取得记录数⽬。
如果
()){
........
}
int total = Row();
你将得到的total是0
因为,getRow是在遍历结果集的时候的指针,也是在结果集内移动的指针,也就是说,指向了当前的记录索引号,所以,在进⾏结果集的遍历前和后都被重置成0。
所以,想取得记录的条数,可以把指针移到最后⼀条记录,然后取得当前记录的编号就是记录的条数。
所以,必须⽤
rst.last();
之后才能⽤ Row()来取得,才能取到值。
注意:想要⽤这种⽅法来取得结果集的⾏数,必须⽤ 可滚动结果集
Statement stmt = ateStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);否则,你就不能执⾏
rst.last()
也就不能取得结果集的条数。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论