jdbc編程基礎(三)——jdbc的事務

事務是相關操作構成一個完整操作單元,所有的語句都順利執行後,事務可以提交。否則, 如果其中某個語句遇到錯誤,那麼事務將被回滾,就好像沒有執行過任何命令一樣。

將多個命令組合成事務的主要原因是爲了確保數據庫的完整性。例如, 假設我們需要講錢從一個帳號轉賬到另一個帳戶。此時,一個非常重要的問題是我們必須同時將錢從一個帳號取出並且存入另一個帳號。如果在將錢存入其他帳號之前系統發生崩潰,那麼我們必須撤銷取款操作,取款存款必須是一個完成的操作單元,在同一個是事務裏完成。

可見,事務要麼成功的執行所有的操作並被提交,要麼在中間某個失敗的位置,執行回滾操作,數據庫講自動這小上次提交事務以來的所有更新操作,就像沒有執行過任何命令。

默認情況下,數據庫鏈接處於自動提交模式。每個sql命令一旦被執行便被提交給數據庫。如果要檢查當前自動提交模式的設置,請調用Connection類中的getAutoCommit方法。

設置自己的事務單元:
1、關閉自動提交模式:conn.setAutoCommit(false);---------事務的開始
2、使用通用的方法創建語句對象Statement
Statement stmt = conn.createStatement();
3、 任意多次調用executeUpdate方法;
4、 執行了所有命令之後,調用commit方法。--------------事務的結束
5、如果出現錯誤,請調用conn.rollback();
此時, 程序將自動這些上次提交以來的所有命令。當事務被SQLExceptiony
異常中斷時,通常的方法是發起回滾操作。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章