mysql数据库中测试Ibatis事务代码,发现事务不能回滚,而且不提交事务
也能插入数据等问题。后来发现原来是mysql数据库的原因。我的mysql数据库采用的引
擎是MyISAM,而这个引擎不支持事务。所以Ibatis的代码不好用了。
解决办法是修改mysql引擎,改为支持事务的InnoDB引擎。
show engines; // 查看mysql数据库的引擎(采用的引擎在Support列的值是:Default)
修改前我发现MyISAM的Support列值为Default,并且Transaction列为No,说明不支持事
务。
我们在mysql的初始化文件my.ini里设置mysql数据库默认引擎。
my.ini文件中,在[mysqld]下加上
default-storage-engine=InnoDB // 设置默认引擎为InnoDB
然后重启mysql服务,重新创建表,这样就支持事务了。
本文探讨了在使用Ibatis框架进行MySQL数据库操作时遇到的事务管理问题。具体表现为事务无法回滚及未提交即可插入数据等现象。通过分析发现原因是使用的MyISAM存储引擎不支持事务功能。文中详细介绍了如何通过修改MySQL配置文件my.ini来切换到支持事务的InnoDB引擎。
384

被折叠的 条评论
为什么被折叠?



