資料庫事務:是一組邏輯操作單元,使資料從一種狀態轉變到另一種狀態。
事務處理的原則:保證所有事務都作為乙個工作單元來執行,即使出現了故障,都不能改變這種執行方式。當在乙個事務中執行多個操作時,要麼所有的事務都提交(commit),那麼這些修改就會永久的儲存下來,要麼資料庫管理系統將放棄所有的修改,整個事務回滾(rollback)到最初狀態。
資料一旦提交,就不可回滾。
會導致資料自動提交的操作:
1、ddl操作一旦執行,都會自動提交。
2、dml預設情況下,一旦執行成功,就會自動提交。(可以通過setautocommit(flase);的方式取消dml操作的自動提交)
3、預設在關閉連線時,事務自動提交。如果多個操作,每個操作使用的是自己單獨的連線,則無法保證事務,即同乙個事務的多個操作必須在同乙個連線下。
jdbc程式中為了讓多個sql語句作為乙個事務執行:
1、呼叫connection物件的setautocommit(flase);以取消自動提交事務。
2、在所有的sql語句都成功執行後,呼叫commit();方法提交事務。
3、在出現異常時,呼叫rollback();方法回滾事務。
//從外部獲得連線
connection conn = null;
trycatch
(exception e)
catch
(sqlexception e1)
}finally
catch
(sqlexception e)
jdbcutils.
closeresourse
(conn, null)
;}
注意:若此時connection沒有被關閉,還可能被重複使用,則需要恢復其自動提交的狀態,setautocommit(false)。尤其是在使用資料庫連線池技術時,執行close()方法前,建議恢復為自動提交的狀態。 資料庫事務
事件是訪問並可能更新各種資料項的乙個程式執行單元。事件由事務開始與事務結束之間執行的全體操作組成。為了保證資料完整性,資料庫系統需要維護事務的以下性質 原子性 atomicity 事務中的操作要麼全部成功,要麼全部失敗。一致性 consistency 事務執行前後要保持資料庫的一致性。隔離性 iso...
資料庫 事務
資料庫事務 database transaction 是指作為單個邏輯工作單元執行的一系列操作。事務處理可以確保除非事務性單元內的所有操作都成功完成,否則不會永久更新面向資料的資源。通過將一組相關操作組合為乙個要麼全部成功要麼全部失敗的單元,可以簡化錯誤恢復並使應用程式更加可靠。乙個邏輯工作單元要成...
資料庫事務
這段時間面試,由於基礎不是特別好,遇到一些要筆試的公司。就會表示出來 今天有人問我,資料庫事務 是什麼。我只感覺十分熟悉。但是又說不出所以然。回來找了一下,現在整理記錄 1 定義 資料庫事務 database transaction 是指作為單個邏輯工作單元執行的一系列操作。事務處理可以確保除非事務...