如何取得ResultSet的行数计算机等级考试

文章作者 100test 发表时间 2009:06:24 19:53:59
来源 100Test.Com百考试题网


  编辑特别推荐:

  全国计算机等级考试(等考)指定教材

  全国计算机等级考试学习视频

  全国计算机等级考试网上辅导招生

  全国计算机等级考试时间及科目预告

  百考试题教育全国计算机等级考试在线测试平台

  全国计算机等级考试资料下载

  全国计算机等级考试论坛

  如果你想的取得一个结果集的行数,怎么办?
  在ResultSet对象里面,我们找不到取得结果行数的办法。
  其实我们通常的解决方法无非有一下几种:
  [1]
  Connection con=....
  Statement stmt = con.createStatement().
  String sqlStr = "count(*) as total ".
  ResultSet rst = stmt.executeQuery(sqlStr).
  rst.next().
  int total =  rst.getInt("total").
  缺点:如果想要遍历结果集,你不得不在执行一次查询,取得结果集。
  [2]
  String accQrySql = "0select * from accounts".
  Connection con = DBUtils.getConnection().
  Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE).
  ResultSet rst = stmt.executeQuery(accQrySql).
  你可以通过下面的方法来取得结果集的记录数目
  rst.last().
  int total = rst.getRow().
  这时,你可以取得记录数目。
  如果
  while(rst.next()){
  ........
  }
  int total = rst.getRow().
  你将得到的total是0
  因为,getRow是在遍历结果集的时候的指针,也是在结果集内移动的指针,也就是说,指向了当前的记录索引号,所以,在进行结果集的遍历前和后都被重置成0。
  所以,想取得记录的条数,可以把指针移到最后一条记录,然后取得当前记录的编号就是记录的条数。
  所以,必须用
  rst.last().
  之后才能用 rst.getRow()来取得,才能取到值。
  注意:想要用这种方法来取得结果集的行数,必须用 可滚动结果集
  Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE).
  否则,你就不能执行
  rst.last()
  也就不能取得结果集的条数。

相关文章


java获得当前系统内存及硬盘使用情况的代码计算机等级考试
如何取得ResultSet的行数计算机等级考试
让Tomcat支持中文路径名和中文文件名计算机等级考试
使用一般处理程序(IHttpHandler)制作图片水印计算机等级考试
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛