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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

MyBatis 事务源码分析

發布時間:2023/12/13 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MyBatis 事务源码分析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

先來看看在JAVA事務的相關技術,在JAVA中有兩類事務,JDBC事務和JTA事務,如果是JDBC類型的事務,則是由Connection類來控制的。如果創建一個Connection對象時,沒有顯示調用

setTransactionIsolation(int?level)?方法,則Connection使用當前數據庫默認的事務隔離級別,數據庫的默認事務隔離級別可以通過相應的SQL語句進行查詢,例如在Mysql數據庫下可使用?select?@@tx_isolation;語句查看當前數據庫的事務隔離級別。

JDBCConnection類針對事務的隔離性定義了五個隔離級別。

Connection.TRANSACTION_NONE

Connection.TRANSACTION_READ_COMMITTED

Connection.TRANSACTION_READ_UNCOMMITTED

Connection.TRANSACTION_REPEATABLE_READ

Connection.TRANSACTION_SERIALIZABLE

在mybatis中,有一個事務管理器的配置,其中type屬性可以配置事務的類型,提供了JDBCMANAGED的配置屬性,這就說明在mybatis中事務的管理方式有兩個事務管理器的實現,都是針對JDBC事務的事務管理器(非JTA事務),分別是:

??org.apache.ibatis.transaction.jdbc.JdbcTransaction

??org.apache.ibatis.transaction.managed.ManagedTransaction

這兩個類都實現了org.apache.ibatis.transaction.Transaction接口,Transaction接口定義了如下方法:

Connection getConnection() throws SQLException;void commit() throws SQLException; void rollback() throws SQLException; void close() throws SQLException;

通過這些方法可以看出這個接口實際是對Connection類進行了包裝,包括了Connection的創建、提交、回滾、關閉動作。并且,其中ManagedTransaction類的commit方法和rollback方法中沒有做任何事,也就是說這個類是不控制事務的提交和回滾的,而交由外部容器去管理事務的提交與回滾,外部容器(可以是Spring?容器或EJB容器)通過聲明式事務的方式進行管事。

mybatis中,通過一個Enumorg.apache.ibatis.session.TransactionIsolationLevel

來定義了事務的隔離級別:

public enum TransactionIsolationLevel {NONE(Connection.TRANSACTION_NONE),READ_COMMITTED(Connection.TRANSACTION_READ_COMMITTED),READ_UNCOMMITTED(Connection.TRANSACTION_READ_UNCOMMITTED),REPEATABLE_READ(Connection.TRANSACTION_REPEATABLE_READ),SERIALIZABLE(Connection.TRANSACTION_SERIALIZABLE);private final int level; private TransactionIsolationLevel(int level) { this.level = level; } public int getLevel() { return level; } }

TransactionIsolationLevel類中定義的事務隔離級別其實就是引用了Connection類中的事務隔離級別,下面分別對這幾種隔離級別進行說明:?

TRANSACTION_NONE:表示不支持事務的常量

TRANSACTION_READ_UNCOMMITTED:表示可以發生臟讀?(dirty?read)、不可重復讀和虛讀?(phantom?read)?的常量

TRANSACTION_READ_COMMITTED:不可重復讀和虛讀可以發生

TRANSACTION_REPEATABLE_READ:虛讀可以發生

TRANSACTION_SERIALIZABLE:指示不可以發生臟讀、不可重復讀和虛讀的常量。

再來理解下什么是臟讀、不能重復讀、虛讀(又叫幻讀)

臟讀:如果一個事務對數據進行了更新,但事務還沒有提交,另一個事務就可以“看到”該事務沒有提交的更新結果。這樣造成的問題是,如果第一個事務回滾,那么第二個事務在此之前所“看到”的數據就是一筆臟數據。

不可重復讀:指同個事務在整個事務過程中對同一筆數據進行讀取,每次讀取結果都不同。如果事務1在事務2的更新操作之前讀取一次數據,在事務2的更新操作之后再讀取同一筆數據一次,兩次結果是不同的。所以TRANSACTION_READ_COMMITTED是無法避免不可重復讀和虛讀。

幻讀:指同樣一個查詢在整個事務過程中多次執行后,查詢所得的結果集是不一樣的。幻讀針對的是多筆記錄。

最后再總結下:mybatis只是對JDBC事務提供了事務管理器的封裝,如果想在mybatis中使用JTA事務,需要我們自行實現org.apache.ibatis.transaction.Transaction接口,對此Spring框架提供了解決方案,可能通過mybatis+spring+atomikos的整合來完成。或者采用EJB容器也可以提供JTA事務的支持。

轉載于:https://www.cnblogs.com/wl0000-03/p/6443900.html

總結

以上是生活随笔為你收集整理的MyBatis 事务源码分析的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 国产精品自产拍高潮在线观看 | 亚洲专区在线播放 | 加勒比成人在线 | 老司机在线永久免费观看 | 一道本久在线中文字幕 | 特级黄色录像 | 综合精品视频 | 欧美福利在线 | 欧美日本韩国在线 | 538国产精品视频一区二区 | 国产乱人伦精品一区二区 | 综合精品一区 | 日韩精品黄 | 成人精品三级av在线看 | 国产精品suv一区 | 欧美精品18videosex性欧美 | 亚洲免费看片 | 各种含道具高h调教1v1男男 | 日本女人一区二区三区 | 国产91香蕉 | 午夜宅男在线 | 午夜免费福利网站 | 国产黑丝在线 | 久操视频免费在线观看 | 亚洲精选国产 | 一级免费av | 实拍女处破www免费看 | 国产一区美女 | 尤物视频在线 | 我们俩电影网mp4动漫官网 | 2019中文在线观看 | 欧美18一19性内谢 | 欧美1区 | 久久影院一区 | 欧美福利网站 | 成人黄色激情 | a级免费观看 | 手机看片久久久 | 国色综合 | 欧美日韩国产一区 | 国产无码精品一区二区 | 免费色网 | 色94色欧美 | 先锋影音av资源网站 | 好爽…又高潮了毛片免费看 | jizz成熟丰满日本少妇 | 无码日韩精品一区二区 | 中文字幕av片 | 日韩中文欧美 | 精品91久久久久久 | 欧美国产精品一区二区 | 蜜桃av色偷偷av老熟女 | 伊人久久中文 | h网站在线播放 | 欧美激情啪啪 | 国产毛片久久 | 日韩精品一区二区三 | 高跟91娇喘 | 奶水旺盛的少妇在线播放 | 驯服少爷漫画免费观看下拉式漫画 | 国内精品久久久久久久久久 | 日本综合久久 | 天堂中文在线网 | 色欲人妻综合网 | 免费在线视频你懂的 | 久草综合网 | 国产精品国产三级国产aⅴ原创 | 亚洲人 女学生 打屁股 得到 | 可以免费看毛片的网站 | 久久精品国产一区二区电影 | 97久久人澡人人添人人爽 | 亚洲国产精品久久久久婷婷老年 | 香蕉网在线视频 | 又黄又刺激的视频 | 精品一区视频 | 中日韩av电影 | 欧色丰满女同hd | 欧美污污视频 | 超碰久草 | 日韩新片王网 | 无码人妻精品一区二区三区蜜桃91 | 极品少妇xxxx精品少妇偷拍 | 99热| 少妇性l交大片免潘金莲 | 日本视频www | 国产奶头好大揉着好爽视频 | 日韩成人激情视频 | 国产无遮挡免费 | 少妇又紧又深又湿又爽视频 | 中文在线字幕免费观 | 久久久精品影院 | 一区免费观看 | 青草av在线 | 清冷男神被c的合不拢腿男男 | 欧美女优一区二区 | 日韩少妇 | 污视频免费在线 | 人妻少妇精品视频一区二区三区 | 亚洲精品色午夜无码专区日韩 |