mysql 回滚-spring3+mybatis+myql事务不生效

问题描述

spring3+mybatis+myql事务不生效

代码格式为
@Transactional(rollbackFor=java.lang.Exception.class, propagation=Propagation.REQUIRED, readOnly=false)
public void excuDevOrAppPagRel(DevPackageRln devPackageRln) throws Exception{
//具体操作,无try-catch操作
}

mysql所有表的引擎已改为innodb,也尝试设置过setautocommit=0,但是还是不回滚,求解。

解决方案

终于搞定了,mysql 的autocommit有session和global级别的,把这俩都设置为false就可以了,业务不精啊

解决方案二:

有没有在application.xml 配置一个transcation 的定义?

解决方案三:

检查sessionFactory配置

解决方案四:

我是在application中配置后,在注入的xml文件中指定用这个transcation,事务是能够保证的。直接用@模式注入,没有用过。

解决方案五:

<bean id="txManager"
    class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    <property name="dataSource" ref="ds" />
</bean>
使用声明式事物就可以,不用添加配置,ds为数据库的配置

解决方案六:

<tx:annotation-driven transaction-manager="transactionManager" proxy-target-class="true" order="1" />

spring 配置文件中是这么配置的,没啥问题吧
时间: 2024-12-03 01:55:18

mysql 回滚-spring3+mybatis+myql事务不生效的相关文章

实现MySQL回滚的Python脚本的编写教程_Mysql

操作数据库时候难免会因为"大意"而误操作,需要快速恢复的话通过备份来恢复是不太可能的,因为需要还原和binlog差来恢复,等不了,很费时.这里先说明下因为Delete 操作的恢复方法:主要还是通过binlog来进行恢复,前提是binlog_format必须是Row格式,否则只能通过备份来恢复数据了. 方法: 条件:开启Binlog,Format为Row. 步骤: 1.通过MySQL自带工具mysqlbinlog 指定导出操作的记录: mysqlbinlog --no-defaults

TransactionScope只要一个操作失败,它会自动回滚,Complete表示事务完成

实事上,一个错误的理解就是Complete()方法是提交事务的,这是错误的,事实上,它的作用的表示本事务完成,它一般放在try{}的结尾处,不用判断前台操作是否成功,如果不成功,它会自己回滚.   #region 事务问题             using (TransactionScope trans = new TransactionScope())             {                 try                 {                   

急!求助!mysql 回滚无效

问题描述 publicstaticbooleanUpdate(Stringdb,ArrayList<String>sql){Connectioncon=DbConnection.getConnection("db");;Statementpstmt=null;try{pstmt=con.createStatement();con.setAutoCommit(false);for(inti=0;i<sql.size();i++){System.out.println(&

在Java的JDBC使用中设置事务回滚的保存点的方法_java

新的JDBC3.0保存点的接口提供了额外的事务控制.他们的环境中,如Oracle的PL/ SQL中的大多数现代的DBMS支持保存点. 当设置一个保存点在事务中定义一个逻辑回滚点.如果发生错误,过去一个保存点,则可以使用rollback方法来撤消要么所有的改变或仅保存点之后所做的更改. Connection对象有两个新的方法,可帮助管理保存点: setSavepoint(String savepointName): 定义了一个新的保存点.它也返回一个Savepoint 对象. releaseSav

详解Java的JDBC API中事务的提交和回滚_java

如果JDBC连接是在自动提交模式下,它在默认情况下,那么每个SQL语句都是在其完成时提交到数据库. 这可能是对简单的应用程序,但有三个原因,你可能想关闭自动提交和管理自己的事务: 为了提高性能 为了保持业务流程的完整性 使用分布式事务 若要控制事务,以及何时更改应用到数据库.它把单个SQL语句或一组SQL语句作为一个逻辑单元,而且如果任何语句失败,整个事务失败. 若要启用,而不是JDBC驱动程序默认使用auto-commit模式手动事务支持,使用Connection对象的的setAutoComm

如何让普通变量也支持事务回滚?

有一次和人谈起关于事务的话题,谈到怎样的资源才能事务型资源.除了我们经常使用的数据库.消息队列.事务型文件系统(TxF)以及事务性注册表(TxR)等,还有那些资源直接可以纳入事务进行状态的管理呢?我说如果我们按照.NET事务模型的规范对相应的资源进行合理的封装,原则上我们可以让任何可编程的资源成为事务型资源.本篇文章中,我将通过简单的编程将一个普通的变量变成支持事务,让变量的值也可以回滚,以确保事务前后的数据一致性. 一.什么是事务型的变量 本文中所说的事务型变量指的是这样的变量: 在事务开始前

为何事务不能回滚?

问题描述 weblogic下的ejb出现异常,代码跟踪已经执行回滚代码了,为何中间操作数据库的数据行为不能回滚到事务开始前?说明:1.中间很多方法都是用statment做参数,同一个statment的传参2.应用和数据库服务的网咯连接比较慢.求解 问题补充:lt0604 写道 解决方案 你应该要清楚的是事务是建立在连接上的.而不是statment.先在你的执行方法里面使用statment.getConnection().getAutoCommit()是不是为false.又或者传参的时候的stat

Spring transaction事务 roll back各种回滚

 Spring的AOP事务管理默认是针对unchecked exception回滚. 也就是默认对RuntimeException()异常极其子类进行事务回滚. Exception作为基类,下面还分checked exception和unchecked exception.如果客户端可以通过其他的方法恢复异常,那么这种异 常就是checked exception:如果客户端对出现的这种异常无能为力,那么这种异常就是Unchecked exception:简单来说,继承于 RuntimeExcep

ORACLE回滚段的概念,用法和规划及问题的解决

oracle|概念|规划|解决|问题      回滚段管理一直是ORACLE数据库管理的一个难题,本文通过实例介绍ORACLE回滚段的概念,用法和规划及问题的解决. 回滚段概述 回滚段用于存放数据修改之前的值(包括数据修改之前的位置和值).回滚段的头部包含正在使用的该回滚段事务的信息.一个事务只能使用一个回滚段来存放它的回滚信息,而一个回滚段可以存放多个事务的回滚信息. 回滚段的作用 事务回滚:当事务修改表中数据的时候,该数据修改前的值(即前影像)会存放在回滚段中,当用户回滚事务(ROLLBAC