软件编程
位置:首页>> 软件编程>> java编程>> Mybatis源码解析之事务管理

Mybatis源码解析之事务管理

作者:Java识堂  发布时间:2023-01-14 10:59:34 

标签:MyBatis,事务

Mybatis事务管理

我们可以在mybatis-config.xml中配置事务管理器的实现


<transactionManager type="JDBC"/>

当值为JDBC时,事务管理实现类为JdbcTransaction,底层利用数据库的Connection来管理事务

当值为MANAGED时,事务管理实现类为ManagedTransactionFactory,但它对事务的管理是一个空实现,将事务管理交给外部容器

Mybatis源码解析之事务管理

JdbcTransaction

Mybatis源码解析之事务管理

ManagedTransaction

Mybatis源码解析之事务管理

和Spring整合后的事务管理

mybatis和spring整合创建TransactionFactory的时候,如果没有设置,则会将其设置为SpringManagedTransactionFactory

org.mybatis.spring.SqlSessionFactoryBean#buildSqlSessionFactory

Mybatis源码解析之事务管理

Mybatis源码解析之事务管理

但是真正执行事务的时候,一般情况下不会由SpringManagedTransaction来执行,因为我们一般都把事务交给spring来管理,当把事务交给spring管理的时候this.isConnectionTransactional=true,因此commit和rollback相当于是空实现

Mybatis源码解析之事务管理

mybatis和spring整合后,一般还是由spring框架中的DataSourceTransactionManager来进行事务管理

Mybatis源码解析之事务管理

如果你对spring进行事务管理不清楚的话,等我后续的spring专栏

来源:https://blog.csdn.net/zzti_erlie/article/details/121947542

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com