java中如何获取结果集ResutSet的总条数?
如果不用以下方式ResultSetrs.last();inttiaoshu=rs.getRow();那么有其它的方法吗?...
如果不用以下方式ResultSet rs.last(); int tiaoshu=rs.getRow();那么有其它的方法吗?
展开
7个回答
展开全部
java中获取结果集ResutSet的总条数,可以直接使用其提供的getRow方法来取得,实例如下:
PreparedStatement pstate = null;//声明一个PreparedStatement类
String sql = "SELECT * FROM CHE_GOOD WHERE TITLE LIKE ?";//从数据库中查询
pstate = con.prepareStatement(sql,
java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE,
java.sql.ResultSet.CONCUR_READ_ONLY);
pstate.setString(1, "%" +greatwqs+ "%");
}
ResultSet result = pstate.executeQuery();//声明一个结果集类
result.last();
int rowcount = result.getRow();//获得总条数
展开全部
既然你已经有方法了,就用那个,JDBC 规范并没有强制驱动程序在迭代游标时必须保持稳定,换句话说,我自己实现的数据库完全可以给你一行然后忘记它,也可以你要一行我看还有时就返回数据,你不问我时我根本就不去检查还有多少行。你看完全最后一行之后还想知道第一行,我完全可以抛出一个状态异常告诉你这功能不支持.
之所以这么约定,那是因为基于性能上的考虑,很多时候我们不应该提前知道那些,因为它会导致数据库提供分配临时空间给这些数据,比如我们开发时在 SQL 工具中写一条 SQL 看有什么数据,但忘记了加条件,结果千万条数据 loading,内存用光了,电脑反应慢,这就是错误的设计,因为这个数据库客户端工具在并非必要地情况下尝试加载所有数据导致性能问题,在客户端加载数据的同时,数据库本身也需要分配临时空间给数据。
因为想知道有多少行本身就不是必须提供的功能。文档中提到了一句话:
@exception SQLFeatureNotSupportedException if the JDBC driver does not support this method
意思是说这个功能是可选的,数据库或它的驱动可以不提供。
一个简单的办法就是取数据前可以 select count(*) 一下。
之所以这么约定,那是因为基于性能上的考虑,很多时候我们不应该提前知道那些,因为它会导致数据库提供分配临时空间给这些数据,比如我们开发时在 SQL 工具中写一条 SQL 看有什么数据,但忘记了加条件,结果千万条数据 loading,内存用光了,电脑反应慢,这就是错误的设计,因为这个数据库客户端工具在并非必要地情况下尝试加载所有数据导致性能问题,在客户端加载数据的同时,数据库本身也需要分配临时空间给数据。
因为想知道有多少行本身就不是必须提供的功能。文档中提到了一句话:
@exception SQLFeatureNotSupportedException if the JDBC driver does not support this method
意思是说这个功能是可选的,数据库或它的驱动可以不提供。
一个简单的办法就是取数据前可以 select count(*) 一下。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
没有别的方法,你这方法是ResultSet获取数据条数的最直接方法,获取之后一般用first()方法将指针移至第一行。
其实如果没用到org的一些包对ResultSet进行封装的话,可以自己写个类对其进行封装,因为ResultSet是要基于Connection存在的,连接一关,ResultSet就废了,用起来还是不太方便
其实如果没用到org的一些包对ResultSet进行封装的话,可以自己写个类对其进行封装,因为ResultSet是要基于Connection存在的,连接一关,ResultSet就废了,用起来还是不太方便
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select count(*) from (你的查询语句)
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select count(*) from 表名;
返回的就是你这个表中数据的条数
返回的就是你这个表中数据的条数
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询