ResultSet中的Java JDBC First()不起作用



我想将光标的位置更改为第一行,但我不知道为什么我的代码不起作用。当我添加rs2.first():时

我也得到了这个错误:

此方法应仅在可滚动的ResultSet对象上调用(类型为type_SCROLL_INSENSITIVE)。

        try{                    
      String driver = "org.apache.derby.jdbc.ClientDriver";
      Class.forName(driver).newInstance();
      String url = "jdbc:derby://localhost:1527/test";
      Connection conn = DriverManager.getConnection(url);
      String query = "select * from APP.RANKING";
      Statement stmt = conn.createStatement();
      Statement stmt2 = conn.createStatement();
      ResultSet rs = stmt.executeQuery(query);
      ResultSet rs2 = stmt2.executeQuery(query);
      while (rs.next()){             
          String BID = rs.getString("BALLOT_ID");
          String CN = rs.getString("CANDIDATE_NAME");
          String ROID = rs.getString("USER_ID");
          Ro1_ID = ROID;
          String RA = rs.getString("RANK");
          int rowNum = rs.getRow();
          int rowNum2;
          boolean In_check = false;
          while(rs2.next()){               
                  In_ballot.addElement(BID);  
                  
                }
          rs2.First();
          In_ballot.addElement(BID);  
              }
         
         }
    catch(Throwable e) {
                System.err.println(e.getMessage());        
                }
    this.InB_list.setModel(In_ballot);

默认情况下,在连接中调用createStament()会导致每个ResultSet都具有类型"type_FORWARD_ONLY"-这会导致使用first()时出现异常。

相反,使用createStatement的另一个版本,比如这个版本。

这个在Derby中创建可滚动ResultSet的示例可能会有所帮助。

最新更新