2011-08-16 45 views
0

我做了一個Java應用程序,它讀取文本文件並將其存儲在數據庫中。數據庫有2個表所以爲了存儲文本的值我創建了兩個準備好的語句,按照這個順序如何使這項工作在Java

  • 用於表存儲數據1
  • 碼用於表2

存儲數據和其完美地工作的代碼。但是,當第二個表中存在語義錯誤時,第一個表中的數據仍然存儲,這不是我想要的。

在堅果殼中,如果第二個表中有任何語義錯誤,我不想將任何數據存儲在數據庫中。那我該怎麼做呢?

+3

你需要思考或事務性地思考:-) –

+0

我試圖清空存儲在第二張表的代碼,但它不會工作。我不明白你的回答 – Lou

+0

http://download.oracle.com/javase/tutorial/jdbc/basics/transactions.html – Vlad

回答

0

在將輸入寫入數據庫之前驗證輸入。

3

它可能取決於您的數據庫,但您應該使用事務,捕獲任何異常並在數據不正確的情況下回滾事務。

This link might help you

2

你想要的是一個交易在你的數據庫,這將讓你如果出現錯誤的第二個回滾第一次插入。

您沒有指定您正在使用哪種數據庫連接技術,而是嘗試查看其文檔以獲取「事務」支持。

1

您需要使用事務。將連接上的自動提交設置爲false,執行2條語句。如果存在異常,則捕獲該事務並回滾該事務,否則提交。謝謝