查询语句之后得到一个ResultSet对象rs,现在要知道它的长度,如何进行?
当然,你可以
while(rs.net)
{
  ...统计...
}
但这样统计过后,rs的游标就移动了,我再无法用rs了,但我算出长度之后,还要用rs的。

解决方案 »

  1.   

    Statement s = c.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
                                                ResultSet.CONCUR_READ_ONLY);
    r.last();
    System.out.println(r.getRow());
    r.beforeFirst();
      

  2.   

    楼上的方法在有的不支持向前滚动的结果集的数据库上就有问题了,更好的方法是实用CachedRowSet,这样做的缺点就是内存占用较大,不过如果结果集中所有数据都对你有意义的话也就无所谓了。CachedRowSet本身有得到结果集大小的方法。
    ------
    cownew开源团队,国内最活跃的开源团队之一,主要产品:sql翻译引擎、Hibernate建模工具,JDBC监控工具。
    网址:http://www.cownew.com
    blog:http://www.blogjava.net/huanzhugege
      

  3.   

    static int TYPE_SCROLL_INSENSITIVE 该常量指示可滚动但通常不受其他的更改影响的 ResultSet 对象的类型
      

  4.   

    rs.last();
    rs.getRow();\\就是它了
      

  5.   

    用这个不就可以了
    select count(*) from [table]...
      

  6.   

    while(rs.net)
    {
      ...统计...
    }
    再复制rs一个对象
      

  7.   

    huanzhugege(cownew.com) 
    楼上的方法在有的不支持向前滚动的结果集的数据库上就有问题了,更好的方法是实用CachedRowSet,这样做的缺点就是内存占用较大,不过如果结果集中所有数据都对你有意义的话也就无所谓了。CachedRowSet本身有得到结果集大小的方法。
    ------
    cownew开源团队,国内最活跃的开源团队之一,主要产品:sql翻译引擎、Hibernate建模工具,JDBC监控工具。
    网址:http://www.cownew.com
    blog:http://www.blogjava.net/huanzhugege  
    =========================================================
    能说的详细一点么?谢谢
      

  8.   

    标准 CachedRowSet 实现都必须实现的接口http://gceclub.sun.com.cn/Java_Docs/html/zh_CN/api/javax/sql/rowset/CachedRowSet.html