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 理解為,事務其實就是一系列指令的集合。在許多事務處理同乙個資料時,如果沒有採取有效的隔離機制,那麼併發處理資料時,會帶來一些...