2012-03-25 97 views
0

你好,我有一个问题我想改变光标位置第一行,但我不知道为什么我的代码不working.when我添加rs2.first():Java JDBC ResultSet中的First()不起作用?

而且我gettign这个错误:

只能在可滚动的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); 

感谢

+0

rs2.beforeFirst()将光标移到第一行之前,而不是第一行。我没有看到rs2.first();在你的代码 – gorn 2012-03-25 01:54:34

+0

对不起,我修改了我的code.al我也加了错误我得到 – user1290721 2012-03-25 01:56:22

回答

2

默认情况下,要求在每一个有型ResultSet连接结果createStament()“TYPE_FORWARD_ONLY” - 这将导致您看到使用first()例外。

而是使用createStatement的其他版本,如this one

This sample在Derby中创建可滚动的ResultSet s可能会有帮助。

+0

谢谢你救了我的生命:) – user1290721 2012-03-25 02:23:16