请问在java里,如何知道数据集的记录数?? 我也想知道答案,刚才看了半天帮助也找不到相关的ResultSet的函数 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 sqlStmt = sqlCon.createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE,java.sql.ResultSet.CONCUR_READ_ONLY); strSQL = "select name,age from test";sqlRst = sqlStmt.executeQuery(strSQL); //获取记录总数 sqlRst.last(); intRowCount = sqlRst.getRow(); 没有现成的方法,还是自己写个sql的好String sqlCount="select count(*) from tableName whereCondition";ResultSet rsCount= StateMent stmt.executeQuery(sqlCount);rsCount.next();int count=rsCount.getInt(1);rsCount.close(); ResultSet rsCount= StateMent stmt.executeQuery(sqlCount);你可真有创意 to sikuan我的方法不行吗/? 如果从效率来说,感觉还是另外自己提供一个查询记录总数的方法,正如sikuan(冰糖★葫芦★头) 所说的:) 我要是想任意移到某一位置,怎么做呢?rs.moveToCurrentRow(9)行不行 public void moveToCurrentRow() throws SQLExceptionMoves the cursor to the remembered cursor position, usually the current row. This method has no effect if the cursor is not on the insert row.移动到某一位置应该用next() strSQL = "select count(*) from test"; 拙见: 看你查询的结果了. 如果你不管查询的字段内容,光要知道记录数,那么用 select count(*)......挺好的. 如果你还要做其他事情,如 select A.aa,B.bb from A,B.....这种情况下,要知道结果记录数,并且还要用查询得到的结果的话,我想可能只做这一次查询比较好,用查询得到的结果来取记录数. 数据库小,数据库中数据少时,可能两者差别不明显,如果数据库中每个表有几百万条记录,那样的话,每次查询都会很慢(特别是要从几张表同时取数据时),这时候应尽量减少多数据库操作的次数. rs.last();row=rs.getRow();//得到记录数rs.first(); 呵呵,在分页处理时,每次只需要取其中的某些数据(查询出来的记录集只是其中一部分),而又有需要知道总记录集总数,这样就用单独的select count比较好,因为对百万条纪录以上的结果集,这就已经很耗时间了,当然,如果每次就只要知道查询到的记录集(并且不算大,比如在1000以内)的大小的话,那得确没必要再用一条SQL来操作,就直接把结果集的游标移到最后,然后取总行数就OK了,如果还要顺序对记录集进行操作,再返回到第一条,正如楼上所说都可以阿 rs.last()rs.getRow()rs.next()我所知道好象就是这两中方法 java如何记录一段代码的执行时间? 关于log4j的问题!!! 转换错误,不明白啊··· 写一个petShop 再次发两道面试题 有没有做EJB的呀 简直好菜 : [求助]请各位帮帮忙呀! 邮件群发怎么解决? 在网页中编写的javascript程序,怎么不让别人看到???100分求购答案! 想学JAVA!能介绍几本JAVA的好书吗? oci方式访问数据库,url如何写?是否把oci805jdbc.dll放到oracle_home\bin下就可以了?
sqlRst = sqlStmt.executeQuery(strSQL); //获取记录总数
sqlRst.last();
intRowCount = sqlRst.getRow();
String sqlCount="select count(*) from tableName whereCondition";
ResultSet rsCount= StateMent stmt.executeQuery(sqlCount);
rsCount.next();
int count=rsCount.getInt(1);
rsCount.close();
我的方法不行吗/?
the cursor to the remembered cursor position, usually the current row. This method has no effect if the cursor is not on the insert row.移动到某一位置应该用next()
看你查询的结果了.
如果你不管查询的字段内容,光要知道记录数,那么用 select count(*)......
挺好的.
如果你还要做其他事情,如 select A.aa,B.bb from A,B.....这种情况下,要知道结果记录数,并且还要用查询得到的结果的话,我想可能只做这一次查询比较好,用查询得到的结果来取记录数.
数据库小,数据库中数据少时,可能两者差别不明显,如果数据库中每个表有几百万条记录,那样的话,每次查询都会很慢(特别是要从几张表同时取数据时),这时候应尽量减少多数据库操作的次数.
row=rs.getRow();//得到记录数
rs.first();
rs.getRow()rs.next()我所知道好象就是这两中方法