2011-04-03 39 views
2

假設我們有這個疑問:如何獲得結果集中的前一個項目?

ResultSet result = ("select * from table_name"); 

現在,我們可以從結果信息以這種形式

while(result.next()) 
{ 
    . 
    . 
    . 
} 

,但以這種形式,我們可以前進。 現在我想知道是否有可能返回結果?

例如,我們獲得信息name='sam', fname='nic'。接下來我想回去再次獲取這些信息。

可能嗎?

回答

11

是的,JDBC支持。你需要一個可滾動結果集

事情是這樣的:

Statement st = conn.createStatement(
    ResultSet.TYPE_SCROLL_INSENSITIVE, 
    ResultSet.CONCUR_READ_ONLY 
); 
ResultSet rs = st.executeQuery("select * from table_name"); 

然後你只需要使用ResultSet對象rs到結果中移動:

  1. 第一
  2. 絕對
  3. 最後
  4. 下一個
  5. 以前的

是否會幫助您導航的方法。

+0

這是正確的感謝 – 2011-04-03 13:10:59

2

當您創建語句而不傳遞參數給它時,默認爲ResultSet.TYPE_FORWARD_ONLY

Statement st = con.createStatement(); 

如果你希望能夠再滾動回您設置的第一個參數要麼ResultSet.TYPE_SCROLL_INSENSITIVEResultSet.TYPE_SCROLL_SENSITIVE。 (不敏感或對於由他人更改數據庫中的敏感。)

Statement st = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE); 

CONCUR_UPDATABLE將讓你更新的ResultSet如果你想,除非你不需要,我將它設置爲這種情況下, CONCUR_READ_ONLY

閱讀this

相關問題