2011-04-06 33 views
0

有沒有辦法檢查連接是否會提交而不會引發異常?JDBC檢查連接是否可以保證它將提交沒有錯誤

我知道可延期的外鍵約束只在事務提交時執行。

JDBC(java 6)API是否提供了任何方法來詢問數據庫自連接開始(或最後一次提交)以來的所有操作是成功的?

Regards, Pablo。

回答

2

你不能那樣做。提交過程需要一段時間,並且在任何時候連接可能會丟失(想象有人拔掉了cabel)。所以在這裏沒有保證。只要抓住例外 - 爲什麼他們被髮明。

+0

@vladimit:那麼,如何一的XADataSource處理兩個階段提交? – Pablo 2011-04-08 06:04:07

+0

@vladmir:我可能會說我的問題是錯誤的:在可延遲約束的情況下,有沒有辦法通過jdbc詢問數據庫來執行約束檢查? – Pablo 2011-04-08 11:00:12

0

如果您使用的是Oracle數據庫,你可以檢查是否有任何延遲的約束違規與提交前:

Statement stmt = connection.createStatement(); 
stmt.executeUpdate("SET CONSTRAINTS ALL IMMEDIATE");