當我調用以下行:當我調用ResultSet.refreshRow()時,爲什麼會看到NotUpdatable?
Statement statement = connection.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
ResultSet resultSet = statement.executeQuery("select * from user");
resultSet.next();
resultSet.refreshRow();//exception throws here
我看到以下異常:
com.mysql.jdbc.NotUpdatable:結果集不updatable.This結果集 必須來自那是一個聲明創建的結果集類型爲 ResultSet.CONCUR_UPDATABLE,查詢必須只選擇一個表, 可以不使用函數,並且必須從該表中選擇所有主鍵。 有關更多詳細信息,請參見JDBC 2.1 API Specification,第5.6節。此 結果集必須來自於創建結果集 設置類型ResultSet.CONCUR_UPDATABLE的語句,查詢必須只選擇一個 表,不能使用函數並且必須從 那個表中選擇所有主鍵。有關更多 的詳細信息,請參閱JDBC 2.1 API Specification,第5.6節。
我不知道這個例外,因爲如果讀refreshRow
方法的javadoc我們可以發現以下幾點:
的時refreshRow方法爲應用程序明確 告訴JDBC驅動程序來重新獲取一個行(S)提供了一種方式從數據庫
因此以下方向:database --> ResultSet
我有跟隨着摹理解:
更新是可能使用以下方向:
ResultSet --> database
因此我不明白的問題原因。
請說明。
在您的語句創建過程中,您沒有使用ResultSet.CONCUR_UPDATABLE進行設置嗎? – ControlAltDel 2014-08-30 13:10:13
是的。我只想從數據庫中讀取! – gstackoverflow 2014-08-30 13:10:56
我想從db得到最後的更改 – gstackoverflow 2014-08-30 13:25:41