blog迁移至:
http://www.micmiu.com
项目框架就是标准的ssh,测试发现不能实现数据回滚,花了大半天的时间去检查配置和程序均没有问题,主要是从以下几方面去查找问题:spring 事务配置、嵌套事务、异常是否已经被捕获、dao是否强制commit。
实在找不到原因,就在相同框架的前一个项目中测试,确能正常控制数据回滚,太奇怪了,此时突然想到当前项目的数据库是mysql,mysql的表是有事务安全( 比如:InnoDB)和非事务安全(比如:ISAM、MyISAM)之分的,随即登录到mysql数据库查看:
show create table NAP_TB_USER;
CREATE TABLE `NAP_TB_USER` (
`ID` bigint(20) NOT NULL auto_increment,
`EMAIL` varchar(50) default NULL,
`MOBILE` varchar(20) default NULL,
`MSN` varchar(50) default NULL,
`INDEX_SETTING` varchar(50) default NULL,
`PASSWORD` varchar(50) default NULL,
`PHONE` varchar(20) default NULL,
`REAL_NAME` varchar(50) default NULL,
`USER_NAME` varchar(50) NOT NULL,
PRIMARY KEY (`ID`),
UNIQUE KEY `USER_NAME` (`USER_NAME`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8
可知当前的表类型是MyISAM,是非事务安全的,所以无法实现数据回滚。
只要修改表的类型即可:
alter table tablename type=InnoDb;
如果是用hibernate自动建表,而mysql数据库默认的建表类型不是InnoDb,需要修改配置文件:
<property name="dialect">org.hibernate.dialect.MySQLInnoDBDialect</property>
-----------------------------------分 ------------------------------------隔 ------------------------------------线 --------------------------------------
分享到:
相关推荐
jdbc+spring+mysql事务理解和分析
一个简单的spring+hibernate+mysql 事务实例
Spring事务操作示例(四种方式),包含完整代码和数据库文件(基于MySQL,在项目sql文件夹中),可运行,学习Spring事务详见博客:http://blog.csdn.net/daijin888888/article/details/51822257
Java高级编程 实验报告 spring 声明事务 实验目的 掌握spring 声明式事务管理配置 实验环境 本实验采用本实验采用的eclipse或者 Myeclpse开发工具。Spring 4.0以上 Jdk1.7以上、oracle/mysql。
Struts Spring mysql整合开发,Spring Aop事务控制,ssh用户登录实例
这是一个Spring+Mybatis+Mysqls的Java程序,主要是用来学习Spring的事务的,感兴趣的可以下载。
注意:只是jdbc自带的jdbctample,不能 用于整合mybatis框架的事务,我整合了,事务不起作用!!!! 按老师的说法是基于xml方式,但不准确,因为也用到了注解 <aop:aspectj-autoproxy proxy-target-class="true">...
52 MySQL是如何支持4种事务隔离级别的?Spring事务注解是如何设置的?l.pdf
业务层:Spring IOC、Aop事务控制、Spring Task任务调度、Feign、Ribbon、Spring AMQP、Spring Data Redis等。 控制层:Spring MVC、FastJSON、RestTemplate、Spring Security Oauth2+JWT等 微服务治理:Eureka、...
完整的例子,成功运行. 配好mysql数据库后,可以直接main方法测试事务.
maven spring mybatis mysql 事务管理 企业级开发
本工程以“银行账号转账”为例子演示了如何处理Spring、Ibatis结合MySQL数据库使用时的事务操作 本工程编码方式:UTF-8 须执行的SQL语句: CREATE DATABASE `test`; USE `test`; CREATE TABLE `lm_bank_card` ( `...
代码下载下来,想要了解更多相关内容可以看http://www.cnblogs.com/shamo89/p/7307961.html
3、了解Spring事务管理的3个核心接口; 4、了解Spring事务管理的两种方式; 5、掌握基于XML和Annotation的声明式事务管理的使用。 二、 实验内容 1、在MySQL中创建以下三张表,其中account为账户表,book为书籍信息...
花了一晚上时间终于搞出来了Spring整合Mybatis事务回滚(Mysql数据库),控制Service层中的多次插入操作,多次操作整体是一个事务。 里面有缘嘛和jar包,资源为war包,导入即可。运行Test类中的测试代码即可。 建表...
Spring+Mybatis+MySql+Maven 简单的事务管理案例.rar
两个项目,一个项目是基于spring jdbc实现的分布式事务,一个是基于spring hibernate的分布式事务,hibernate项目里的applicationContext2.xml...这两个项目下来,关于spring事务这一块基本上明了,绝对对得起这个分数
struts2、spring与mybatis整合 包含简单登录功能 事务配置,运行JunitTestVillageArticle的modify测试。配置说明参考注释
spring boot下学习mybatis+mysql使用jta对多数据源事务进行整合
Spring项目,数据库用mysql,整合Mybatis,需要自己创建数据库testinnodb,以及两张表Account,int id, int account,表Log,int id ,vchar log。三种事务,手动实现事务,利用AOP实现,以及声明式事务,lib中有所有...