图片说明

mybatis如果事务管理使用JDBC,默认是关闭自动提交的;
但是如果将其改为MANAGED,默认就是开启自动提交;所以spring整合
mybatis之后对于DML语句事务也是自动提交的;

在将事务管理交由Service层来管理时,需要我们自己控制commit()和rollback(),因此需要关闭自动提交功能:
事务的自动提交需要的设置主要考虑三部分,Mybatis的SQLSession,连接池和数据库:
1.SqlSession默认是不自动提交的,需要手动调用commit(),如果想设置可以通过openSession的true和false参数来设置:
在这里插入图片描述
图片说明

2.由于采用了连接池来管理连接,连接池是默认自动提交的,所以需要在配置文件里的dataSource配置中关闭自动提交:
在这里插入图片描述

图片说明

db.properties里:
在这里插入图片描述
图片说明

3.由于数据库(我使用的mysql)中默认自动提交,所以也需要关闭:
在这里插入图片描述
这样就可以了!

图片说明

文章出处:
https://blog.csdn.net/irisohohoh/article/details/96025819