spring 事務的理解

2021-08-26 15:12:18 字數 894 閱讀 8861

1、spring事務的本質其實就是資料庫對事務的支援

2、spring事務的傳播屬性

propagation_required  支援當前事務、 如果當前沒有事務,就新建乙個事務。

propagation_requires_new新建事務,如果當前存在事務,把當前事務掛起。

propagation_supports支援當前事務,如果當前沒有事務,就以非事務方式執行。

propagation_mandatory支援當前事務,如果當前沒有事務,就丟擲異常。

propagation_not_supported以非事務方式執行操作,如果當前存在事務,就把當前事務掛起。

propagation_never以非事務方式執行,如果當前存在事務,則丟擲異常。

propagation_nested

如果乙個活動的事務存在,則執行在乙個巢狀的事務中。如果沒有活動事務,則按required屬性執行。

3、資料庫隔離級別

read-uncommitted  0  導致髒讀

read-committed  1  避免髒讀,允許不可重複讀和幻讀

repeatable-read 2  避免髒讀,不可重複讀,允許幻讀

serializable3序列化讀,事務只能乙個乙個執行,避免了髒讀、不可重複讀、幻讀。執行效率慢

髒讀:一事務對資料進行了增刪改,但未提交,另一事務可以讀取到未提交的資料。如果第乙個事務這時候回滾了,那麼第二個事務就讀到了髒資料。

不可重複讀:乙個事務中發生了兩次讀操作,第一次讀操作和第二次操作之間,另外乙個事務對資料進行了修改,這時候兩次讀取的資料是不一致的。

幻讀:第乙個事務對一定範圍的資料進行批量修改,第二個事務在這個範圍增加一條資料,這時候第乙個事務就會丟失對新增資料的修改。

4、spring中的隔離級別

spring事務理解

由於以前都是對整個selevlet或者jsp進行事務,所以昨天自然的也以為可在controller類中進行事務 在handlerequest方法中使用了 code jzlogic.updatea a jzlogic.inserb b code jzlogic已經設定事務規則,對insert upda...

Spring 事務理解

1 spring事物是什麼?事務通常由高階資料庫操縱語言或程式語言編寫的,說白了事務就是執行一段或者多段sql的方法。spring本身是沒有事務一說的,資料庫對事務的支援才是spring事務的本質。2 為什麼需要spring事物?jdbc來運算元據庫,必須通過以下步驟才能使用到資料庫的事務,步驟如下...

spring事務管理(事務的理解)

事務必須服從acid原則。acid指的是 1.原子性 atomicity 2.一致性 consistency 3.隔離性 isolation 4.永續性 durability 理解為,事務其實就是一系列指令的集合。在許多事務處理同乙個資料時,如果沒有採取有效的隔離機制,那麼併發處理資料時,會帶來一些...