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服务,重新创建表,这样就支持事务了。