比如:
for(int i=0;i<100;i++)
{
   Vector v=new Vector();
   while(rs.next())
   {
       v.add(rs.getString(1);
   }
}但是rs.next()之后,如何让rs回到顶端去呢?

解决方案 »

  1.   

    递归,判断rs是最后一个的话,MoveFirst
      

  2.   

    结果集里不是有指针移动的那些方法,读完之后,指针移到第一条记录,再读。还有vector不推荐使用现在。
      

  3.   

    在创建statement时使用Connection.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE),即让你的rs有可前后遍历的功能,在每次遍历完后使用rs.beforeFirst()方法来将游标定位到起始位置,你也可以通过rs.isBeforeFisrt()来判断游标位置,具体要遍历多少次就要楼主自己选择了
      

  4.   

    什么叫不想重复读RS值?这个RS是外面传的参数读出来的时候需要循环读么? 不太明白lz需要说明白点需求
      

  5.   

    把rs中的数据读出来,存到list里面去。
    然后到list里取数据,随便取多少此都行,速度也快。
      

  6.   

    用可滚动的ResultSet:stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
    if(rs.isLast)
       rs.first();
      

  7.   

    正确的思路是这样的:
    1.把RS中取得的数据封装到Bean中.比如User
    2.把User加入到List<User>中.
    3.以后不过读多少次都用上面的List中读取.(可以rs.close()了.)
      

  8.   

    有点忘了
    rs有没有beforefirst
    或者beforenext什么的方法额..
    before什么的。..
      

  9.   

    要是要总使用rs中的数据,把rs的数据存在一个静态的list或者map中
      

  10.   


    建议这样做,ResultSet要及时关闭,始终处于打开状态性能浪费