我在嘗試更新ResultSet時遇到問題。 我正在通過JDBC查詢數據庫,並找回不是CONCUR_UPDATABLE的結果集。 我需要在指定的列中將'_'替換爲''。我怎麼能這樣做?如何更新JDBC只讀結果集的行
String value = derivedResult.getString(column).replace("_", " ");
derivedResult.updateString(column, value);
derivedResult.updateRow();
這對Updatable很好,但如果它是ResultSet.CONCUR_READ_ONLY呢?
編輯:
這將是一個JDBC驅動程序,它調用另一個JDBC驅動,我的問題是,我需要更換的ResultSet的內容,即使它僅僅是前進,還是隻讀。如果我設置scroll_insensitive和updatable,這沒有問題,但有JDBC驅動程序與只向前結果集一起工作。
解決方案:
- 我應該嘗試移動的結果,一個內存數據庫和替換的內容在那裏。
- 我是否應該實現像所有其他類一樣行爲的結果集:如果需要,調用底層驅動程序函數並進行修改。
我不想使用resulst之後進行更新或插入。基本上這將在選擇的查詢中完成。
什麼是數據庫,也許更重要的是什麼是查詢? – dkateros 2013-03-06 13:00:17
你是如何創建Statement或PreparedStatement的;這與ResultSet的創建方式有關。 – 2013-03-06 13:03:26
db可能會有所不同,因爲這將用於使用其他jdbc驅動程序的JDBC驅動程序。由於查詢正在改變,列名稱包含有關其內容的信息,從那裏我知道修改內容。 我創建了一個Statement,PreparedStatement類,它爲Statement/PreparedStatement生成底層的JDBC,並從那裏獲取結果。 – 2013-03-06 13:05:57