Mybatis源碼解析之事務(wù)管理
Mybatis事務(wù)管理
我們可以在mybatis-config.xml中配置事務(wù)管理器的實現(xiàn)
<transactionManager type="JDBC"/>
當(dāng)值為JDBC時,事務(wù)管理實現(xiàn)類為JdbcTransaction,底層利用數(shù)據(jù)庫的Connection來管理事務(wù)
當(dāng)值為MANAGED時,事務(wù)管理實現(xiàn)類為ManagedTransactionFactory,但它對事務(wù)的管理是一個空實現(xiàn),將事務(wù)管理交給外部容器
JdbcTransaction
ManagedTransaction
和Spring整合后的事務(wù)管理
mybatis和spring整合創(chuàng)建TransactionFactory的時候,如果沒有設(shè)置,則會將其設(shè)置為SpringManagedTransactionFactory
org.mybatis.spring.SqlSessionFactoryBean#buildSqlSessionFactory
但是真正執(zhí)行事務(wù)的時候,一般情況下不會由SpringManagedTransaction來執(zhí)行,因為我們一般都把事務(wù)交給spring來管理,當(dāng)把事務(wù)交給spring管理的時候this.isConnectionTransactional=true,因此commit和rollback相當(dāng)于是空實現(xiàn)
mybatis和spring整合后,一般還是由spring框架中的DataSourceTransactionManager來進(jìn)行事務(wù)管理
如果你對spring進(jìn)行事務(wù)管理不清楚的話,等我后續(xù)的spring專欄
到此這篇關(guān)于Mybatis源碼解析之事務(wù)管理的文章就介紹到這了,更多相關(guān)Mybatis事務(wù)管理內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
使用Mybatis Plus整合多數(shù)據(jù)源和讀寫分離的詳細(xì)過程
這篇文章主要介紹了Mybatis Plus整合多數(shù)據(jù)源和讀寫分離的詳細(xì)過程,mybatisplus可以整合阿里的分布式事務(wù)組件seata,本文通過示例代碼給大家介紹的非常詳細(xì),需要的朋友參考下吧2021-09-09Spring Security OAuth2 授權(quán)碼模式的實現(xiàn)
這篇文章主要介紹了Spring Security OAuth2 授權(quán)碼模式的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08解決Mybatis查詢方法selectById()主鍵不一致問題
這篇文章主要介紹了解決Mybatis查詢方法selectById()主鍵不一致問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-10-10