关于spring与hibernate整合,开启事务不起作用的原因

一、前言

事务不回滚,原因可能有很多, 比如配置等等, 但是有一种问题是MySQL本身的问题, 这就比较恶心了。MyISAM是MySQL默认的存储引擎,在安装MySQL时如果没有指定存储引擎,那么MySQL会默认使用MyISAM,因为它不支持事务,所以效率会比InnoDB高一些。如果使用的是MyISAM,那么需要将其改为InnoDB。

二、修改方法

Windows系统:

1、打开“MySQL_HOME/my.ini”,把skip-innodb修改为#skip-innodb(注释掉)。

2、在[mysqld]下加上一句:default-storage-engine=INNODB

3、重启MySQL服务

4、原来已经存在的表,如果想使用事务,要修改它的存储引擎,在默认是InnoDB的情况下删除重建。当不想删除的时候,执行alter table 表名 ENGINE = InnoDB;

5、在使用了InnoDB引擎之后,再次运行代码,回滚成功!

Mac系统

参考链接: http://www.tuicool.com/articles/QBFZV3R

重点不是字符编码的问题, 而是下面这句话:

default-storage-engine=INNODB

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容