[英]Records are not getting updated with ResultSet
我在這里定義了一些JDBC東西。
我基本上是從位於11.11.1.111
一個表( test.selectiontable
)中獲取記錄,並將其插入22.22.2.222
( test.insertiontable
)。 這是一個基於線程的過程,因此線程將繼續查找和傳輸記錄,直到所有記錄都被傳輸為止。
和
由於我不想在另一個表中插入重復的記錄,因此我在test.selectiontable
有一個名為DTSStatusType_ti
的字段,該字段在表中的初始值為1
。 因此,在將記錄傳輸到test.insertiontable
后,我將對其進行更新,如下所示:
Line # 112 SelectQueueRS.updateInt( "DTSStatusType_ti", 3 );
Line # 113 SelectQueueRS.updateString( "Queued_DialerIP_vch", 22.22.2.222 );
Queued_DialerIP_vch
中test.selectiontable
的初始值為11.11.1.111
。
盡管使用我的代碼中的以上兩行代碼來更新記錄,但是我認為這不是一種有效的更新方法。 任何人都可以提出一些有效的記錄更新方法,並100%確保這些記錄永遠不會重復。 請隨時提出我的代碼中的任何更改建議。 謝謝
除了更新原始查詢的ResultSet之外,您還可以:
connMain.setAutoCommit(false)
啟動事務 SELECT FOR UPDATE
鎖定選定的行 WHERE id IN (...)
)使用一個更新查詢更新原始表 connMain.commit()
提交事務 3和4可以在同一周期內完成。 順便說一下,您還可以在遠程數據源上啟動事務並進行批量插入。 您還應該注意在try-catch塊中進行事務並關閉資源。 這可能會有所幫助: http : //docs.oracle.com/javase/tutorial/jdbc/basics/transactions.html
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.