日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

spring(三)-事务管理

發布時間:2024/7/19 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 spring(三)-事务管理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、 Spring事務管理

  事務管理:本質是使用spring管理事務,完成數據庫對于事務的支持。

  事務:一系列對數據庫操作的集合,一個操作錯誤,所有都必須回滾,其特點是acid。

(1)事務并發存在問題:

  臟讀:事務讀取數據無效。事務T1將某一值修改,然后事務T2讀取該值,此后T1因為某種原因撤銷對該值的修改。

  不可重復讀:一個事務范圍內兩個相同的查詢卻返回了不同數據。由于查詢時系統中其他事務修改的提交而引起的。側重對同一個數據的修改。

  幻讀:多個事務操作統一數據集。同樣的條件, 由于事務T2的修改,第 1 次和第 2 次讀出來的記錄數不一樣。側重對數據集的增加和刪除。

  丟失更新:事務T2操作覆蓋了事務T1的操作。

(2)spring事務管理方法

  編程式事務管理(編程式事務管理使用TransactionTemplate或者直接使用底層的PlatformTransactionManager),可以做到代碼塊事務的細粒度。

  聲明式事務管理:建立在AOP之上的,其本質是對方法前后進行攔截,然后在目標方法開始之前創建或者加入一個事務,在執行完目標方法之后根據執行情況提交或者回滾事務。就不需要在業務邏輯代碼中摻雜事務管理的代碼。

  (包括兩種方法:基于tx和aop名字空間的xml配置文件/基于@Transactional注解,對dao層注釋)

@Transactional (propagation=Propagation.NOT_SUPPORTED)?

public class MyBatisServiceImpl implements MyBatisService {

???????? @Autowired

???????? private MyBatisDao dao;

???????? @Override

???????? public void insert(Test test) {

????????????????? dao.insert(test); 事物傳播行為是PROPAGATION_NOT_SUPPORTED,以非事務方式運行,不會存入數據庫

????????????????? //拋出unchecked異常,觸發事物,回滾??

????????????????? throw new RuntimeException("test");

???????? }

(3)事務隔離級別

  若干個并發的事務之間的隔離程度。

                  

(4)事務傳播行為

  在開始當前事務之前,一個事務上下文已經存在,此時有若干選項可以指定一個事務性方法的執行。

                  

?

?

?

?

?

?

?

?

轉載于:https://www.cnblogs.com/xiongchang95/p/8966683.html

總結

以上是生活随笔為你收集整理的spring(三)-事务管理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。