`

Spring 管理实务不能回滚问题!终于找到原因!大意了……

 
阅读更多

情况:

  1. spring配置文件中已经配置好事务,配置代码此处就不贴了。
  2. service实现类中代码:
    public void insert(AdsiteBO record) {
            try{
            	adsiteDAO.insert(record);
                    adsiteDAO.update(record);//此处调用异常
            }
            catch(Exception e){
                ExceptionUtils.getFullStackTrace(e);
            }
        }
    正常情况下上述代码不会插入数据,但是我这数据被插入到数据库了。

原因及解决办法:

  1. 这里抛出的异常被try、catch语句块捕获了,造成异常没有被抛出,所以spring管理事务失败。
  2. 此处我测试在catch语句块中随便抛出了个异常,结果成功了。代码如下:
    public void insert(AdsiteBO record) {
            try{
            	adsiteDAO.insert(record);
            	adsiteDAO.update(record);//此处调用异常
            }
            catch(Exception e){
                ExceptionUtils.getFullStackTrace(e);
                System.out.println("抛异常了……");
                throw new UnsupportedOperationException();
            }
        }
     spring事务回滚了。
  3. 其实不用如此麻烦的,直接抛出异常就可以了。
    public void insert(AdsiteBO record) throws Exception{
              ……
    }
     
分享到:
评论

相关推荐

    spring 简单实例 事务回滚

    总之,这个“spring简单实例 事务回滚”案例为我们提供了一个学习Spring事务管理的好起点。通过理解如何配置事务管理器,使用`@Transactional`注解,以及异常处理机制,我们可以更好地掌握Spring如何保证数据的一致...

    Spring事务管理A方法内部调用B方法的回滚问题测试代码

    在Spring框架中,事务管理是核心特性之一,用于确保数据操作的一致性和完整性。当一个方法(A方法)内部调用另一个方法(B方法)时,可能会遇到事务控制的复杂情况。本示例代码旨在解决在A方法内部调用B方法时的回滚...

    Spring+Mybatis整合事务回滚

    花了一晚上时间终于搞出来了Spring整合Mybatis事务回滚(Mysql数据库),控制Service层中的多次插入操作,多次操作整体是一个事务。 里面有缘嘛和jar包,资源为war包,导入即可。运行Test类中的测试代码即可。 建表...

    spring-控制事物回滚

    "spring-控制事物回滚"这个主题主要涉及Spring如何在出现异常时自动或手动触发事务的回滚,以及如何配置和使用Spring的事务管理机制。我们将深入探讨Spring事务管理的原理、API使用以及在实际开发中的应用。 首先,...

    Spring中@Transactional事务回滚(含实例

    在Spring框架中,`@Transactional`注解是用于标记事务管理的重要工具,它使得开发者能够方便地在代码中声明式地控制事务的边界。本文将深入解析`@Transactional`的事务回滚机制,并通过实例来详细讲解其工作原理,...

    Spring事务管理只对出现运行期异常进行回滚

    标题中提到的“Spring事务管理只对出现运行期异常进行回滚”这一特性是基于Java异常处理机制的。在Java中,异常分为两种类型:运行时异常(RuntimeException及其子类)和检查异常(CheckedException)。运行时异常是...

    Spring/SpringMVC/MyBatis整合+事务回滚

    在IT行业中,Spring、SpringMVC和MyBatis是三个非常重要的开源框架,它们分别用于企业级应用的依赖管理、Web层控制以及数据访问。这三个框架的整合是Java开发中的常见实践,能够帮助开发者构建高效、灵活且易于维护...

    Spring中的@Transactional事物回滚实例源码

    在Spring框架中,`@Transactional`注解是事务管理的核心组件,它允许开发者在方法级别声明事务边界。本文将深入探讨这个注解的工作原理、如何配置以及如何在遇到异常时触发事务回滚。 首先,`@Transactional`是...

    Spring Boot多数据源(支持Spring声明式事务切换和回滚).pdf

    《Spring Boot多数据源(支持Spring声明式事务切换和回滚)》 Spring Boot多数据源技术是构建高效、灵活的多租户SaaS架构的关键。在本文中,我们将深入探讨如何实现动态数据源切换,支持Spring声明式事务管理,并讨论...

    完美解决Spring声明式事务不回滚的问题

    在实际应用中,Spring声明式事务管理是非常常见的,但是有时候我们可能会遇到事务不回滚的问题。今天,我们就来讲解究竟是什么原因导致了事务不回滚,如何来解决这个问题。 Spring事务管理操作方法 ---------------...

    4.Spring中的JdbcTemplate,Spring中的的事务,

    - **声明式事务管理**:通过配置来管理事务,更易于使用且能减少代码量。 #### 平台事务管理器(PlatformTransactionManager) 这是一个接口,定义了基本的事务管理操作,包括提交和回滚等。常用的实现类有`...

    45 如果事务执行到一半要回滚怎么办?再探undo log回滚日志原理!l.pdf

    总之,回滚日志对于数据库管理系统的事务处理至关重要,它确保了事务的原子性,即事务要么全部完成,要么完全不发生。通过合理利用回滚日志,数据库系统能够提供更加稳定和可靠的数据处理能力,满足现代应用对数据...

    行业-45 如果事务执行到一半要回滚怎么办?再探undo log回滚日志原理!l.rar

    当一个事务在执行过程中遇到问题,例如系统故障或用户请求回滚,数据库系统需要有能力恢复到事务开始前的状态。这就引出了我们今天要探讨的核心概念——undo log,即回滚日志。 Undo log是数据库管理系统用来记录...

    鼠标滚轮回滚问题屏蔽工具 1.2版

    我用的是雷柏的3100无线鼠标,滚轮经常出现回滚的现象,就是鼠标滚轮向上滚动的时候,时不时的会向下滚动一次,非常的恼火,于是乎,写了个小程序基本搞定了这个问题,有类似问题的朋友可以试试 使用方法: -直接启动,或者...

    18使用Seata彻底解决Spring Cloud中的分布式事务问题!1

    Seata 是阿里巴巴开源的一款强大的分布式事务解决方案,专为解决微服务架构中的分布式事务问题而设计。在传统的单体应用中,本地事务可以确保数据一致性,但在微服务场景下,随着服务拆分,每个服务可能拥有独立的...

    浅谈Spring中@Transactional事务回滚及示例(附源码)

    浅谈Spring中@Transactional事务回滚及示例 @Transactional是Spring Framework中的一种事务管理机制,用于管理数据库事务。它可以使得数据库操作更加安全和可靠。本文将详细介绍@Transactional的使用场景、checked...

    Spring事务管理失效原因汇总

    标题“Spring事务管理失效原因汇总”指出了本文的核心内容是分析在使用Spring框架进行事务管理时可能遇到的问题及其原因。描述部分进一步说明了事务失效的后果往往不明显,容易在测试环节被忽略,但在生产环境中出现...

    回滚段参数修改

    离线的回滚段不能被事务使用,需要在线才能被事务所利用。 在实际操作中,回滚段的大小、数量和分配策略对数据库性能有着直接影响。合理规划和管理回滚段可以优化并发性能,防止因回滚段不足导致的事务失败或性能...

    Spring事务管理Demo

    在Spring框架中,事务管理是核心特性之一,它允许开发者以声明式或编程式的方式处理应用中的事务。Spring事务管理的目的是确保数据的一致性和完整性,尤其是在多操作、多资源的环境中。本Demo将深入探讨Spring如何...

Global site tag (gtag.js) - Google Analytics