java中如何获取结果集ResutSet的总条数?

如果不用以下方式ResultSet rs.last(); int tiaoshu=rs.getRow();那么有其它的方法吗?

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();//获得总条数
温馨提示:内容为网友见解,仅供参考
第1个回答  2018-03-04
既然你已经有方法了,就用那个,JDBC 规范并没有强制驱动程序在迭代游标时必须保持稳定,换句话说,我自己实现的数据库完全可以给你一行然后忘记它,也可以你要一行我看还有时就返回数据,你不问我时我根本就不去检查还有多少行。你看完全最后一行之后还想知道第一行,我完全可以抛出一个状态异常告诉你这功能不支持.
之所以这么约定,那是因为基于性能上的考虑,很多时候我们不应该提前知道那些,因为它会导致数据库提供分配临时空间给这些数据,比如我们开发时在 SQL 工具中写一条 SQL 看有什么数据,但忘记了加条件,结果千万条数据 loading,内存用光了,电脑反应慢,这就是错误的设计,因为这个数据库客户端工具在并非必要地情况下尝试加载所有数据导致性能问题,在客户端加载数据的同时,数据库本身也需要分配临时空间给数据。
因为想知道有多少行本身就不是必须提供的功能。文档中提到了一句话:
@exception SQLFeatureNotSupportedException if the JDBC driver does not support this method
意思是说这个功能是可选的,数据库或它的驱动可以不提供。
一个简单的办法就是取数据前可以 select count(*) 一下。
第2个回答  2009-09-28
没有别的方法,你这方法是ResultSet获取数据条数的最直接方法,获取之后一般用first()方法将指针移至第一行。

其实如果没用到org的一些包对ResultSet进行封装的话,可以自己写个类对其进行封装,因为ResultSet是要基于Connection存在的,连接一关,ResultSet就废了,用起来还是不太方便
第3个回答  推荐于2017-11-22
select count(*) from (你的查询语句)本回答被提问者采纳
第4个回答  2009-09-29
select count(*) from 表名;
返回的就是你这个表中数据的条数

java中如何获取ResultSet rs结果集中的条数?
方法一:利用ResultSet的getRow方法来获得ResultSet的总行数 Java代码 ResultSet rs;rs.last(); \/\/移到最后一行 int rowCount = rs.getRow(); \/\/得到当前行号,也就是记录数 rs.beforeFirst(); \/\/如果还要用结果集,就把指针再移到初始化的位置 方法二:利用循环ResultSet的元素来获得ResultSet的...

Java如何获得ResultSet的总行数?
回答:取得ResultSet行数的方法主要有以下几种: 1. 用ResultSet的getRow方法来取得总行数 2. 利用循环ResultSet元素的方法取得总行数 ResultSet rset = stmt.executeQuery(select * from table); int rowCount = 0; while(rset.next()) { ?? rowCount++;} 3. 利用SQL语句来取得ResultSet的...

在Java中,如何通过在数据库得到的结果集得到表的列数和行数?
在Java中,获得ResultSet的总行数的方法有以下几种。第一种:利用ResultSet的getRow方法来获得ResultSet的总行数Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);ResultSet rset = stmt.executeQuery("select * from yourTableName");rset.last();int r...

java 如何获取ResultSet 中
获取ResultSet中的数据主要通过get方法,如getXXX(),通过指定列的索引或名称获取值。如果列为空,对象类型的值返回空对象,数字类型如Float返回0,boolean返回false。通过getString()获取所有列的值,返回字符串格式。列类型包括基本数据类型如int、Boolean、Float、byte,以及特殊类型如java.sql.Date、java...

java中如何获取ResultSet rs结果集中的条数?
resultset不可以获取里面的条数因为resultset是保持数据库连接时存在,是一个只进只读的对象,相当一个数据行的指针没有大小的。Result这个对象有大小。其方法是getRowCount()

如何获取ResultSet的行数和列数
ResultSet resultSet = statement.executeQuery("select * from " + tableName);}catch(Exception e) {\/\/TODO: handle exception e.printStackTrace();}这样获得的结果集,指针就可以在其中自由移动。然后,就可以用如下方法获取结果集的行数:introwCount = 0;try{resultSet.last();rowCount = ...

如何获取ResultSet的行数和列数
ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);java.sql.ResultSet rs = pst.executeQuery();\/\/获取结果集的列数 System.out.println(rs.getMetaData().getColumnCount());\/\/将结果集滚动到最后一个 rs.last();\/\/获取结果集当前行数 System.out.println(rs.getRow());} catch ...

java,Resoultset怎么获取结果集的长度
JDBC ResultSet 有方法 ResultSet#getFetchSize();\/\/Retrieves the fetch size for this ResultSet object.int java.sql.ResultSet.getFetchSize() throws SQLException

java中如何获取ResultSet rs结果集中的条数?
ResultSetMetaData不能获取行数,只能获取列的相关信息,不知道楼主获取行数有什么用,一般可通过SQL语句实现行数统计,通过ResultSet和ResultSetMetaData实现数据结构转换和实体封装,没有获取行数的必要。

java 获取ResultSet结果集中字段别名的数据。怎么做到、求指点、谢谢...
String sql = "select i_id as id,str_name as name from ..."; ResultSet rs = null; while (rs.next()) { \/\/ 都可以取ID int id0 = rs.getInt(1); int id1 = rs.getInt("id"); \/\/ 都可以取name String name0 = rs.getString(2); String name...

相似回答