1.mysql的INNODB引擎,支持事务,可自动提交。另外一种常用的MYISAM引擎是不支持事务的,本身就没有事务的概念。
2.dao层使用junit测试时,自动提交跟mysql有关,因为mysql如果默认自动提交的话,dao层代码执行后就直接提交数据库。
3.service层使用junit测试时,可以在service方法中添加一些异常比如“被零除的异常”,来测试事务是否起作用。关键一点,是在service层,而不是在junit的测试方法中,因为事务是在service层,把异常写在junit测试方法中的话,mysql默认会自动提交,然后报异常。