你是想先得到结果集的count吗?好像没有这个函数哎。
不过可以先用sql语句把结果集的count检索出来呀:
select count(*) from ... where ...
然后就可以用for循环了!!!
楼上的方法也很对,不过跟用while没什么区别。

解决方案 »

  1.   

    要想简单可以用
    for(;rs.next();;)要不就得到
    select count(*) from ... where ...
    嘻嘻
      

  2.   

    不必select count,通过几条语句就OK了。
    rs.last();  count = rs.getRow();
    rs.beforeFirst();
    for (int i=0;i<count;i++){
      rs.next();
    }
      

  3.   

    得出count的数量以后
    如何操作?for语句如何写?
      

  4.   

    得出count跟while一样写啊?该如何写啊?谁能给个例子
      

  5.   

    hehe~`` 建议不要last(),然后又beforeFirst()等等。
    这样小记录集还可以,大一点恐怕...
    其实你可以自己写一个类似ADO中RecordSet的类,写之前最好看看JDBC驱动程序对ResultSet的实现。这对学习数据库很有帮助的哦!我通常还会为不同的数据库进行优化,比如db2或者oracle等。这里有一个思路,
    首先按照查询语句把所有符合条件的记录的主键提取出来,并保存在成员中。一般主键习惯用long或者int类型的,所以相对的会很快。然后可以根据这个记录集进行分页,或计算记录总数等统计工作。然后当用户真正要使用数据的时候再根据这些id到数据库中把相应的数据取出来。这样做的效率很高的哦:)另外,注意大多数实现中ResultSet是和Connection关联的,也就是说当connection关闭之后,resultset也就不能用了。有时候我们要对数据进行分析、或者作为参数传递等,在必要的时候应该缓存这些数据,然后关掉connection,并经它是很珍贵的资源,我们并不想长时间占据它!一点拙见,大家一起研究:)
      

  6.   

    while(rs.next()){
    System.out.println(rs.getString("fieldname"));
    }
      

  7.   

    preparedStatement could work
      

  8.   

    我最近在学unix c,没时间啊!
      

  9.   

    可以的
    count=rs.getrows;
    for(int i;i<count;i++){
    }
      

  10.   

    select count(*) as bbb from ... where ...
    for(int i=1,i<bbb,i++)
    {
    }
      

  11.   

    Statement stmt = con.createStatement(
                                          ResultSet.TYPE_SCROLL_INSENSITIVE,
                                          ResultSet.CONCUR_UPDATABLE);
           ResultSet rs = stmt.executeQuery("SELECT a, b FROM TABLE2");
          rs.last();
         int rowcout = rs.getrows();
         for(int i=0;i<rowcount;i++)
    {
      rs.absolute(i);
    rs.get.................
    }