最近开发中用到了springjdbctemplate来持久化数据,想通过代码控制事务的回滚和提交,但是所有配置一切正常的情况下就是不能实现回滚,查看了datasource和transactionManager配置都没有问题,但是就不给回滚,手动回滚代码如下:
public void insertUser() {
TransactionTemplate tt = new TransactionTemplate(getTransactionManager());
tt.execute(new TransactionCallback() {
public Object doInTransaction(TransactionStatus status) {
JdbcTemplate jt = new JdbcTemplate(executeTestSource());
jt.execute("insert into `srp_keyword_info` (`kid`, `keyname`, `type`, " +
"`synword`, `srpid`, `differflag`) " +
"values ('11', '1', '11', '1', '1', '1')");
jt.execute("insert into `srp_keyword_info` (`kid`, `keyname`, `type`, " +
"`synword`, `srpid`, `differflag`) " +
"values ('11', '1', '11', '1', '1', '1','2')");
String ss = null;
System.out.println(ss.toCharArray());
return null;
}
});
}
配置正确,但是不回滚这是为什么呢,纠结了一下午,终于找到了答案,原因尽然是:
mysql的表是有事务安全( 比如:InnoDB)和非事务安全(比如:ISAM、MyISAM)之分的,所以你当前表的事务类型是ISAM、或是MyISAM其中的一种,只要修改为InnoDB就可以了,MyISAM是非事务安全的,所以无法实现数据回滚。 只要修改表的类型即可:
相关推荐
Spring中的JdbcTemplate,Spring中的的事务.。。。。。。。
1. 基于Aspectj实现动态数据源...6. 实现事务内切换数据源(支持原生Spring声明式事务哟,仅此一家),并支持多数据源事务回滚(有了它除了跨服务的事务你需要考虑分布式事务,其他都不需要,极大的减少了系统的复杂程度)
花了一晚上时间终于搞出来了Spring整合Mybatis事务回滚(Mysql数据库),控制Service层中的多次插入操作,多次操作整体是一个事务。 里面有缘嘛和jar包,资源为war包,导入即可。运行Test类中的测试代码即可。 建表...
自己做的一个简单的spring运用实例,主要是关于事务回滚的一个小例子,希望对还在纠结事务回滚的童靴有点帮助。。。
主要介绍了JAVA设置手动提交事务,回滚事务,提交事务的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
使用MySQL时,如果发现事务无法回滚,但Hibernate、Spring、JDBC等配置又没有明显问题,到底是什么原因,下面与大家分享下
下面小编就为大家带来一篇完美解决Spring声明式事务不回滚的问题。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
Spring/SpringMVC/MyBatis整合,可事务回滚
子线程任务发生异常,主线程事务如何回滚
数据库试验,关于事务的操作。关于事务的创建撤销,事务的回滚等基本操作练习。
SQL 事务回滚解决回滚无效的情况 BEGIN TRY END TRY CAHTH
基于SpringBoot的轻量级redis事务回滚机制,使用栈和ThreadLocal记录业务链的redis操作,发生异常进行回滚,参考了阿里巴巴Seata AT模式的db回滚策略:补偿回滚,记录前镜像与当前操作语句,反向解析生成补偿动作。...
Spring事务管理A方法内部调用B方法的回滚问题测试代码
Spring中的@Transactional事物回滚实例源码
Spring中@Transactional事务回滚(含实例详细讲解,附源码)Java开发Java经验技巧共8页.pdf.zip
执行多条SQL语句对数据库进行操作,如果某个SQL语句执行中出错,那么要对之前的操作进行回滚,代码比较简单。
oracle 事务 回滚 存储过程 自用
java 应用程序操作数据库实例,若出现sql异常则事务回滚。
主要介绍了spring事务异常回滚实例解析,具有一定借鉴价值,需要的朋友可以参考下
spring boot 纯注解方法事务控制回滚,注解+简单配置文件使用多线程demo