首先說一下什麼是事務!數據庫
數據庫事務(Database Transaction) ,是指做爲單個邏輯工做單元執行的一系列操做,要麼徹底地執行,要麼徹底地不執行。 事務處理能夠確保除非事務性單元內的全部操做都成功完成,不然不會永久更新面向數據的資源。經過將一組相關操做組合爲一個要麼所有成功要麼所有失敗的單元,能夠簡化錯誤恢復並使應用程序更加可靠。一個邏輯工做單元要成爲事務,必須知足所謂的ACID(原子性、一致性、隔離性和持久性)屬性。事務是數據庫運行中的邏輯工做單位,由DBMS中的事務管理子系統負責事務的處理。併發
來自百度百科!事務
再說一下事務的四大特性:ci
1. 原子性(Atomicity)
原子性是指事務包含的全部操做要麼所有成功,要麼所有回滾,所以事務的操做成功就必需要徹底應用到數據庫,資源
若是操做失敗則不能對數據庫又熱和影響get
2.一致性(Consistency)
一致性是指事務必須是數據庫從一個一致性狀態變換到另外一個一致性狀態,也就是說一個事務執行以前和執行it
以後都必須處於一致性狀態.io
那轉帳來講,假設用戶A和用戶B二者的錢加起來一共是5000,那麼無論A仍是B如何轉帳,轉幾回賬,事務結束後class
兩個用戶的錢加起來應該仍是5000,這就是事務的一致性.百度
3.隔離性(Isolation)
隔離性是當多個用戶併發訪問數據庫時,好比操做同一張時,數據庫爲每個用戶開啓的事務,不能被其餘事務的
操做所幹擾,多個併發事務之間要相互隔離.
紀要達到這麼一種效果:對於任意兩個併發的事務T1和T2,在事務T1看來,T2要麼在T1開始以前就已經結束,要麼
在T1結束以後纔開始,這樣每一個事務都感受不到其餘事務在併發的執行.
4.持久性(Durability)
持久性是指一個事務一旦被提交了,那麼對數據庫中的數據改變就是永久性的,即使是在數據庫系統遇到故障的情
況下也不會丟失提交事務的操做.
列如咱們在使用JDBC 操做數據庫時,在提交事務方法後,提示用戶事務操做完成,當咱們程序執行完成直到看到提
示後,就能夠認定事務以及正確提交,即便這時候數據庫出現了問題,也必需要將咱們的事務徹底執行完成,不然就會形成我
們看到提示事務處理完畢,可是數據庫由於故障而沒有執行事務的重大錯誤!