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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

spring事务管理一:关于事务管理的接口

發布時間:2025/1/21 编程问答 80 豆豆
生活随笔 收集整理的這篇文章主要介紹了 spring事务管理一:关于事务管理的接口 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

?

spring事務管理主要有三個接口:

  • 事務管理器接口:PlatformTransactionManager。可以為不同的框架提供不同的實現,包括Spring JDBC、iBatis、Hibernate(有版本限制,3.0以上,spring版本更高時需要更高版本)、JPA、Jdo、JTA
  • 事務定義接口:TransactionDefinition。包括設置隔離級別(ISOLATION)、傳播行為(PROPAGATION)、超時信息(TIMEOUT)、只讀參數(READONLY)。
  • 事務狀態接口:TransactionStatus。獲取事務具體的狀態。
  • ?詳細:

    關于事務隔離級別,有5種。分別是:

    • ISOLATION_DEFAULT,默認隔離級別,也就是根據數據的默認隔離級別,不同的數據庫的隔離級別也不盡相同。
    • ISOLATION_READ_UNCOMMITTED,級別最低的隔離級別。允許讀取其他還未提交但已改變的數據,可導致臟讀、幻讀、不可重復讀等異常
    • ISOLATION_READ_COMMITTED,提交隔離級別。允許讀取其他已經提交的數據,可防止臟讀,但可能出現幻讀、不可重復讀
    • ISOLATION_REPEATABLE_READ,更高級別的隔離。對相同字段的多次讀取是一致的,可防止臟讀、不可重復讀,但可能出現幻讀
    • ISOLATION_SERIALIZABLE,級別最高的隔離。采用鎖的方式進行事務操作,可以防止臟讀、幻讀、不可重復讀,但隨之而來的付出的時間和性能代價也更大

    關于事務傳播行為,事務傳播行為主要是用來解決業務層對事務的調用問題,有7種。分別是:

    • PROPAGATION_REQUIRED,默認的傳播行為,當前如果有事務,Spring就會使用該事務,否則會開始一個新事務
    • PROPAGATION_SUPPORTS,如果當前有事務則使用,沒有也不會開始新事務
    • PROPAGATION_MANDATORY,如果當前有事務則使用,沒有則會拋出異常
    • PROPAGATION_REQUIRES_NEW,總是會開啟新事務,如果當前已經有事務存在會將原有的事務掛起
    • PROPAGATION_NOT_SUPPORTED,以非事務形式運行行為,如果當前已經有事務存在則掛起該事務
    • PROPAGATION_NEVER,以非事務形式運行行為,如果當前已經有事務存在則拋出異常
    • PROPAGATION_NESTED,如果當前有事務存在,則嵌套在該事務下執行;沒有則會開啟新事務

    事務超時時間則是以getTimeout()方法獲取,單位為秒(s);是否只讀則通過isReadOnly()方法獲取。

    關于TransactionStatus接口的操作主要有三個,分別是isNewTransaction() 是否是新事務、isRollbackOnly()是否是只回滾事務,還有一個最重要的方法setRollbackOnly(),這個方法將事務設置為只允許回滾操作,即事務在任何操作下都是最終執行回滾。

    ?

    轉載于:https://my.oschina.net/u/2428684/blog/686034

    總結

    以上是生活随笔為你收集整理的spring事务管理一:关于事务管理的接口的全部內容,希望文章能夠幫你解決所遇到的問題。

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