日期:2014-05-16  浏览次数:20567 次

Ibatis 数据库事务不能回滚问题

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