2011-08-18 53 views
3

我不希望使用的next(),因爲如果結果不是空的,我不希望光標要先進。是否有某種peek()方法或等價物,如果ResultSet爲空且返回false,否則不會影響記錄?是否有可能判斷java ResultSet是否爲空而不影響記錄?

編輯:

我不能叫beforeFirst,因爲我得到以下

操作需要一個滾動的ResultSet,但是這ResultSet是 FORWARD_ONLY

我需要FORWARD_ONLY因爲我使用PostgreSQL光標

+0

參見[如何檢查,如果結果集返回W/O移動Java中的光標記錄(http://stackoverflow.com/questions/6722285/how-to-check- if-resultset-has-records-returned-wo-moving-the-cursor-in-java) –

+0

爲什麼你不能創建一個滾動不敏感的'ResultSet'?它只需要一個'Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE);'。 –

+0

@ SanjayT.Sharma該聲明將失敗,因爲你還需要提供其併發模型:'語句查詢= conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);' –

回答

-1
getFetchSize() 

根據返回的則可以繼續的大小...

+0

@Lukas埃德爾..一種混合了遺憾。 .. – ngesh

+0

獲取大小無關,與結果集的大小,再加上如果你的目的是要得到的結果的大小,如果什麼都沒有停止進一步的處理,你可能已經解釋了這一點。 – Pere

1

可以調用first()方法來檢查,如果你有在ResultSet結果。如果first()返回true,則可以調用beforeFirst()重置ResultSet光標位置。

+0

這就是我正在做的事情,我得到的地方是'操作需要一個可滾動的ResultSet,但是這個ResultSet是FORWARD_ONLY'異常 – Pere

相關問題