1. 程式人生 > >Spring事務(一)-事務回顧

Spring事務(一)-事務回顧

事務回顧

什麼是事務?

事務指的是邏輯上的一組操作,這組操作要麼全部成功,要麼全部失敗。

經典案例
張三賬戶有1000元,李四賬戶也有1000元。此時,張三要給李四轉賬200元,這個操作包括如下步驟:
① 修改張三賬戶,扣除200元
② 修改李四賬戶,增加200元
只有以上這兩步都完成了,才算轉賬成功。任何一步失敗都是不行的,也就是說①和②是存在一個事務中,並且必須滿足事務的一系列特性。

事務的特性
① 原子性:指事務是一個不可分割的工作單位,事務中的操作要麼都發生,要麼都不發生。

以上轉賬步驟①和②要麼一起成功,要麼一起失敗。

② 一致性:指事務前後資料的完整性必須保持一致。

張三給李四轉賬,但是他倆的賬戶總額保持不變,不能出現張三賬戶減少200元,李四賬戶沒增加200元的情況。

③ 隔離性:指多個使用者併發訪問資料庫時,一個使用者的事務不能被其他使用者的事務所幹擾,多個併發事務之間資料要相互隔離。

張三的賬戶在轉賬的同時,另一個事務也在操作張三的賬戶,導致資料出現重複操作的情況。

④ 永續性:指一個事務一旦被提交,它對資料庫中資料的改變就是永久性的,即使資料庫發生故障也不應該對其有任何影響。

張三給李四轉賬完成後,這個結果是永久性的,也就是說張三的賬戶實實在在的減少了200元,而李四的賬戶實實在在的增加了200元。