关于spring中使用mysql数据库明明配置了事务管理却失效的原因及解决方法

直接点一针见血:你mysql数据库是否使用的MyISAM存储引擎?是的话,恭喜你:原因就是因为MyISAM引擎是不支持事务的

有人跟我说Spring+mybatis事务回滚无效。刚刚开始我以为是他事务配置或者AOP切面定义有问题!谁知道,查了很久原因,最后才知道,居然是因为他使用的mysql而且还用的Mysql的MyISAM引擎。

所以,以后如果还有人问你无法管理事务的问题,如果他还是用的Mysql,就先问他用的数据库存储引擎是什么吧,谢谢,使用mysql,只有InnoDB存储引擎支持事务处理


    

-- 查看mysql安装了哪些插件及是否安装了innodb插件。
show plugins;
-- 查看mysql现在已提供什么存储引擎:
show engines;
-- 查看mysql当前默认的存储引擎:
show variables like '%storage_engine%';
-- 看某个表用了什么引擎(在显示结果里参数engine后面的就表示该表当前用的存储引擎),及建表语句:
show create table s_dic;

解决方法:将MyISAM存储引擎转成InnoDB即可,这个很简单,网上一堆教程

猜你喜欢

转载自blog.csdn.net/wh445306/article/details/112121731