2011-11-07 28 views
0

我有一個結果作爲obejct RS和我使用的代碼的片段進行計數的行數..移動結果集,以第一

 while(rs.next()) 
      count++; 

和i具有再次使用相同的結果集檢索數據。我使用的方法

rs.beforefirst(); 

,但它是不工作...控制不進入

while(rs.next()){ 
     cid=rs.getInt(1); 
     taskdate=rs.getString(2); 
     tasktime=rs.getString(3); 
     addr=rs.getString(4); 
    } 

我必須返回根據我的查詢4行..但它不? ?

回答

5

Resultset是隻進。如果您想要導航回第一條記錄,則需要創建可滾動結果集

// Create a scrollable result set 
Statement stmt = connection.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, 
    ResultSet.CONCUR_READ_ONLY); 
ResultSet resultSet = stmt.executeQuery("SELECT * FROM my_table"); 

// Move cursor forward 
while (resultSet.next()) { 
    // Get data at cursor 
    String s = resultSet.getString(1); 
} 

// Move cursor backward 
while (resultSet.previous()) { 
    // Get data at cursor 
    String s = resultSet.getString(1); 
} 

// Move cursor before first record 
resultSet.beforeFirst(); //required statement in this case