2013-06-03 32 views
0

我正在嘗試使用ResultSet.updateDouble()來修改ResultSet以進行一些本地處理。我實際上並不想修改底層數據庫。是否可以在不更改數據庫的情況下使用Java更新本地使用的SQL ResultSet?

我的希望是使用updateDouble()將對ResultSet對象進行更改,但不更新實際數據庫,因爲我從來沒有撥打ResultSet.updateRow()

我發現只調用更新方法實際上並不影響ResultSet對象中的列字段。

有沒有辦法修改本地使用的ResultSet,或者我應該將相關數據複製到ArrayList並使用它?

+0

如果在執行操作時數據庫連接仍處於活動狀態,請在完成操作後執行回滾。 –

+3

無論如何,你爲什麼需要更新它?我通常先複製數據,然後編輯它們。 –

+0

您可以將autocommit設置爲false(connection.setAutoCommit(false)),請記住在完成後將其設置爲true。 – monika

回答

2

回答這個問題的最好方法是做一個實驗。也許你應該問這個問題,然後進行自己的實驗並自己回答。

我懷疑有可能按照您的描述來做,而不是像所建議的評論之一那樣調用回滾,但我會建議不要這樣做。

很多時候,我們試圖採取最快捷的方式來做某件事,但往往時間會導致難以發現的錯誤。花時間做對,按照你的建議構建數組列表。

相關問題