假設我們有這個疑問:如何獲得結果集中的前一個項目?
ResultSet result = ("select * from table_name");
現在,我們可以從結果信息以這種形式
while(result.next())
{
.
.
.
}
,但以這種形式,我們可以前進。 現在我想知道是否有可能返回結果?
例如,我們獲得信息name='sam', fname='nic'
。接下來我想回去再次獲取這些信息。
可能嗎?
假設我們有這個疑問:如何獲得結果集中的前一個項目?
ResultSet result = ("select * from table_name");
現在,我們可以從結果信息以這種形式
while(result.next())
{
.
.
.
}
,但以這種形式,我們可以前進。 現在我想知道是否有可能返回結果?
例如,我們獲得信息name='sam', fname='nic'
。接下來我想回去再次獲取這些信息。
可能嗎?
是的,JDBC支持。你需要一個可滾動結果集。
事情是這樣的:
Statement st = conn.createStatement(
ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY
);
ResultSet rs = st.executeQuery("select * from table_name");
然後你只需要使用ResultSet對象rs
到結果中移動:
是否會幫助您導航的方法。
當您創建語句而不傳遞參數給它時,默認爲ResultSet.TYPE_FORWARD_ONLY。
Statement st = con.createStatement();
如果你希望能夠再滾動回您設置的第一個參數要麼ResultSet.TYPE_SCROLL_INSENSITIVE或ResultSet.TYPE_SCROLL_SENSITIVE。 (不敏感或對於由他人更改數據庫中的敏感。)
Statement st = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
CONCUR_UPDATABLE將讓你更新的ResultSet如果你想,除非你不需要,我將它設置爲這種情況下, CONCUR_READ_ONLY。
閱讀this。
這是正確的感謝 – 2011-04-03 13:10:59