通过ResultSet获取到rs的记录数的几种方法
Posted 彩屏黑白
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了通过ResultSet获取到rs的记录数的几种方法相关的知识,希望对你有一定的参考价值。
JDBC中的ResultSet API没有直接获取记录条数的方法,现介绍几个:
方法一:利用ResultSet的getRow方法来获得ResultSet的总行数
ResultSet rs = ps.executeQuery(sql);
rs.last(); //移到最后一行
int rowCount = rs.getRow();//得到当前行号,也就是记录数
rs.beforeFirst();
//如果还要用结果集,就把指针再移到初始化的位置
方法二:利用循环ResultSet的元素来获得ResultSet的总行数
ResultSet rs = ps.executeQuery(sql);
int rowCount = 0; while(rs.next())
{
rowCount++;
}
方法三:利用sql语句中的count函数获得ResultSet的总行数
String sql = "select count(*) record from tablename";
ResultSet rs = ps.executeQuery(sql);
int rowCount = 0;
if(rs.next())
{
rowCount=rs.getInt("record");
}
确实是JDK API并没有给我们一个很显式的关于ResultSet结果集的记录数,但是我们还是通过方法一知道,其实是可以通过其他的方法来进行变通的。所以,我们 时常在使用JDK的时候,可能你想要某个功能,虽然在API中可能找不到相对应的方法,但是经常是可以通过其他的方式来变通实现,虽然有时这样的变通可能 效率不高,但是也经常是我们自己再实现出来的可能更没有它的多种转换来的更好,所以一定要多学习,多研究API,不管是JDK,还是其他技术的,其实你只 要是建立在其平台上的,你的绝大多数的需求都是可以通过它现有的来升华的。反正就是要多一种思维,就是站在别人的肩膀上学习和升华,我相信,我们使用的 JDK,开源框架和工具包的开发水平还是非常之高的。
以上是关于通过ResultSet获取到rs的记录数的几种方法的主要内容,如果未能解决你的问题,请参考以下文章
如何在以下几种方法中关闭 resultSet、prepareStatement、conn 以避免 rs 关闭和连接池被卡住