如何理解spring事務及聲明式事務的使用

本篇文章給大家帶來的內容是關于如何理解spring事務及聲明式事務的使用,包括數據庫中的事物隔離級別,有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。

spring事務及聲明式事務的使用

(同學們,開始復習大學還給老師的數據庫知識啦!!)

事務:訪問并可能更新數據庫中各種數據項的一個程序執行單元(unit)。事務有四個屬性:(ACID)原子性:一個事務是一個不可分割的工作單元,事務中包括的諸操作要么都做,要么都不做。一致性;事務必須是使數據庫從一個一致性狀態變到另一個一致性狀態。一致性與原子性使密切相關的。隔離性:一個事務的執行不能被其他事物干擾。即一個事務內部操作及使用的數據對并發的其他事物是隔離的,并發執行的各個事務之間不能相互干擾。持久性:持久性也稱永久性,指一個事務一旦提交,它對數據庫中數據的改變就應該永久的。

事務目的:為了使數據保持一致性和完整性。

一致性:一個業務鏈的數據狀態是一致的,不能部分改變部分不改變。

完整性:一個業務鏈的數據是完整的,要么一起完成一起失敗,不能部分寫入成功,部分寫入失敗。

簡單理解事務的一致性和完整性就是要么一起活,要么一起死,不能獨活。(像是凄慘的愛情…………^?_?^)

數據庫中的事物隔離級別

在了解事務隔離級別之前,先來了解一下數據中經常發生的可能導致業務邏輯失敗的幾種情況。

臟讀

當一個事務正在訪問數據,并且對數據進行了修改,并且還沒有提交到數據庫中;這時另一事務也訪問了這個數據,然后使用了這個數據。

例如:張三的銀行賬戶現在有1000,現在張三存入了200,那么在張三點擊提交的時候,他媳婦(辛苦的張三在給媳婦存零花錢)在商場購物花了500。張三查看余額發現只有500了(張三懵逼了。。)。然后兩人為了200吵了起來。

? 版權聲明
THE END
喜歡就支持一下吧
點贊11 分享