Mybatis源碼解析之事務管理
Mybatis事務管理
我們可以在mybatis-config.xml中配置事務管理器的實現
<transactionManager type="JDBC"/>
當值為JDBC時,事務管理實現類為JdbcTransaction,底層利用數據庫的Connection來管理事務
當值為MANAGED時,事務管理實現類為ManagedTransactionFactory,但它對事務的管理是一個空實現,將事務管理交給外部容器
JdbcTransaction
ManagedTransaction
和Spring整合後的事務管理
mybatis和spring整合創建TransactionFactory的時候,如果沒有設置,則會將其設置為SpringManagedTransactionFactory
org.mybatis.spring.SqlSessionFactoryBean#buildSqlSessionFactory
但是真正執行事務的時候,一般情況下不會由SpringManagedTransaction來執行,因為我們一般都把事務交給spring來管理,當把事務交給spring管理的時候this.isConnectionTransactional=true,因此commit和rollback相當於是空實現
mybatis和spring整合後,一般還是由spring框架中的DataSourceTransactionManager來進行事務管理
如果你對spring進行事務管理不清楚的話,等我後續的spring專欄
到此這篇關於Mybatis源碼解析之事務管理的文章就介紹到這瞭,更多相關Mybatis事務管理內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- Mybatis配置解析看這一篇就夠瞭
- 在IDEA中maven配置MyBatis的流程詳解
- 關於mybatis resulttype 返回值異常的問題
- Java Mybatis框架增刪查改與核心配置詳解流程與用法
- Java面試題沖刺第九天–MyBatis2