小弟在写一个JDBC时,需要在同一段程序中两次用到while(rs.next()){}来进行查询数据,但是第一次while(rs.next()){}后,数据库的指针就到尾了,请问哪位高手知道怎么把它弄到头呀!!谢谢了

解决方案 »

  1.   

    使用可以滚动的游标.Statement stmt = con.createStatement(
                                          ResultSet.TYPE_SCROLL_INSENSITIVE,
                                          ResultSet.CONCUR_UPDATABLE);
    ResultSet rs = stmt.executeQuery("SELECT a, b FROM TABLE2");JavaDoc API 里面的代码.
      

  2.   

    第一次循环之后,
    调用
    rs.beforeFirst();
    方法.
    然后再循环.
      

  3.   

    rs.beforefirst()指针指向第一条记录的前面
      

  4.   

    rs.beforefirst();小弟也曾用过,但是他会出现"Result set type is TYPE_FORWARD_ONLY"这个异常,请问哪个高手知道怎么可以设置这个参数呢??
      

  5.   

    用rs.beforeFirst();
    很正常啊
      

  6.   

    看二楼的代码能解决问题。
    或者:
    conn.prepareStatement(sqlCode,ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
    sqlCode为sql语句。
    反正不要一个参数都不加,因为默认的是ResultSet.CONCUR_FORWARD_ONLY,rs指针向前走到头后再也回不过来了。