2012-01-19 46 views
0

我正在編寫一個應用程序,它需要保留一些有關底層MySQL服務器(它通過JDBC驅動程序與MySQL服務器通信)的行的元數據。查找哪一行已被更新/刪除JDBC(ResultSet)

實際上,每個客戶端都有一個唯一的ID,我的Java應用程序需要爲每一行存儲修改該行的最後一個客戶端的uuid。

到目前爲止,當插入一行時,我在它的主鍵引用的元數據表中爲其分配一個槽。

我可以考慮這樣做的唯一方法是在表上進行選擇(與更新/刪除條件相同),但這意味着對於給定的查詢,我實際上將工作翻倍。有沒有更好的想法,或者已知JDBC方法來做到這一點?

感謝

回答

2

有兩種方法從Java更新在SQL數據:

  1. 將所有在Java中,你正在做的邏輯,它可以使這個表格簡單,所有的邏輯代碼
  2. 在MySQL中編寫存儲過程以在發生更改時在其他表上執行更新。如果你遵循這條路線,那麼Java代碼很簡單,但是表格中的邏輯很複雜。SQL

你不應該做的是分開差異並在Java中有一些邏輯,在SQL中有一些邏輯。我建議堅持使用你的方法,因爲在SQL中修改和調試存儲過程代碼比在Java中更難。

PS我已經完成了這兩種方式,保持Java中的邏輯更容易維護。

+0

對,我保持Java的邏輯反正,但寧願沒有,每一個「更新*其中x =」,也必須做一個「選擇*其中x」,並想知道是否有一個預先設定jdbc函數,它以更高效的方式做到了這一點 – user1018513

+0

我不認爲JDBC提供了像你想要的那樣的功能。 JDBC代碼只是一個包含SQL連接的精簡包裝,有一些實用程序可幫助您發送查詢並接收行和錯誤。 –