我不希望使用的next(),因爲如果結果不是空的,我不希望光標要先進。是否有某種peek()方法或等價物,如果ResultSet爲空且返回false,否則不會影響記錄?是否有可能判斷java ResultSet是否爲空而不影響記錄?
編輯:
我不能叫beforeFirst
,因爲我得到以下
操作需要一個滾動的ResultSet,但是這ResultSet是 FORWARD_ONLY
我需要FORWARD_ONLY
因爲我使用PostgreSQL光標
我不希望使用的next(),因爲如果結果不是空的,我不希望光標要先進。是否有某種peek()方法或等價物,如果ResultSet爲空且返回false,否則不會影響記錄?是否有可能判斷java ResultSet是否爲空而不影響記錄?
編輯:
我不能叫beforeFirst
,因爲我得到以下
操作需要一個滾動的ResultSet,但是這ResultSet是 FORWARD_ONLY
我需要FORWARD_ONLY
因爲我使用PostgreSQL光標
可以調用first()
方法來檢查,如果你有在ResultSet
結果。如果first()
返回true,則可以調用beforeFirst()
重置ResultSet
光標位置。
這就是我正在做的事情,我得到的地方是'操作需要一個可滾動的ResultSet,但是這個ResultSet是FORWARD_ONLY'異常 – Pere
isBeforeFirst()
返回true
如果光標位於第一行之前或false
如果它是在任何其他位置或者結果集是空的。
參見[如何檢查,如果結果集返回W/O移動Java中的光標記錄(http://stackoverflow.com/questions/6722285/how-to-check- if-resultset-has-records-returned-wo-moving-the-cursor-in-java) –
爲什麼你不能創建一個滾動不敏感的'ResultSet'?它只需要一個'Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE);'。 –
@ SanjayT.Sharma該聲明將失敗,因爲你還需要提供其併發模型:'語句查詢= conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);' –