首页 > 其他分享 >Spring事务传播性质导致事务失效

Spring事务传播性质导致事务失效

时间:2024-08-06 15:08:13浏览次数:10  
标签:事务 Spring try 关键字 失效 public conn

this导致事务失效的原因
当我们在一个事务中调用另一个对象的方法时,如果这个方法中使用了this关键字,事务可能会失效。这是因为this关键字代表当前对象的引用,
而事务是基于数据库连接的,每个数据库连接有自己的事务上下文。如果在一个事务中调用另一个对象的方法,而这个方法中使用了this关键字,
并且这个方法中开启了新的数据库连接,那么这个新的数据库连接将无法参与到原有的事务中,从而导致事务失效。

来都来了,扫下二维吗关注一下吧!

 

下面是一个示例代码,展示了this关键字导致事务失效的情况:

public class UserService {
    private UserDao userDao;

    public void updateUser() {
        // 获取数据库连接
        Connection conn = getConnection();
        try {
            conn.setAutoCommit(false);
            userDao.updateUser(conn);
            // 更新用户信息
            conn.commit();
        } catch (SQLException e) {
            if (conn != null) {
                try {
                    conn.rollback();
                } catch (SQLException ex) {
                    ex.printStackTrace();
                }
            }
        } finally {
            if (conn != null) {
                try {
                    conn.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}

public class UserDao {
    public void updateUser(Connection conn) {
        // 更新用户信息
        this.insertLog(conn); // 调用了另一个对象的方法
    }

    private void insertLog(Connection conn) {
        // 插入日志信息
    }
}


注意:如果业务场景需要事务嵌套,我们需要慎用try 进行异常捕获,也需要慎用this关键字都会导致事务嵌套统一失败回滚失败。


标签:事务,Spring,try,关键字,失效,public,conn
From: https://www.cnblogs.com/wwwcf1982603555/p/18345166

相关文章

  • 基于Spring Boot的网上宠物店系统设计与实现
    ......
  • springboot+vue农产品在线管理系统【程序+论文+开题】-计算机毕业设计
    系统程序文件列表开题报告内容研究背景随着信息技术的飞速发展和互联网的普及,电子商务已成为推动各行各业转型升级的重要力量。在农业领域,传统农产品销售模式面临着信息不对称、流通环节多、成本高企等挑战,严重制约了农产品的市场竞争力与农民的收入增长。因此,构建一个高效......
  • springboot+vue农产品销售与管理系统【程序+论文+开题】-计算机毕业设计
    系统程序文件列表开题报告内容进度安研究背景随着信息技术的飞速发展和农业现代化进程的加快,农产品销售与管理模式正经历着深刻的变革。传统农产品销售链条长、信息不对称、流通效率低等问题日益凸显,严重制约了农业产业的升级与农民收入的增加。特别是在“互联网+”背景......
  • springboot+vue农产品托管系统【程序+论文+开题】-计算机毕业设计
    系统程序文件列表开题报告内容研究背景随着现代农业的快速发展,农产品生产与管理的复杂性和专业性日益增强,传统的农业经营模式已难以满足现代农业高效、精准、信息化的需求。特别是在农产品生产、农机服务及农产品收购等关键环节,信息不对称、资源配置不合理、效率低下等问题......
  • springboot+vue农产品供销服务系统【程序+论文+开题】-计算机毕业设计
    系统程序文件列表开题报告内容研究背景随着农业现代化的不断推进和互联网技术的广泛应用,农产品市场正经历着前所未有的变革。传统农产品供销模式存在信息不对称、流通环节多、效率低下等问题,严重制约了农业经济的发展和农民收入的提升。当前,消费者对农产品品质、安全及购买......
  • 基于uniapp微信小程序+SpringBoot+Vue的礼品商城小程序系统设计和实现(源码+论文+部署
    博主介绍:✌全网粉丝50W+,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流✌技术范围:SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、P......
  • 基于uniapp微信小程序+SpringBoot+Vue的生日福利管理系统设计和实现(源码+论文+部署讲
    博主介绍:✌全网粉丝50W+,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流✌技术范围:SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、P......
  • 基于Java+SpringBoot+Mysql实现的在线电影订票系统部分功能设计与实现五
    一、前言介绍:1.1项目摘要随着互联网技术的飞速发展和普及,人们的娱乐消费方式发生了巨大变化。在线娱乐平台,特别是电影订票系统,成为了现代人观影的主要选择之一。这一变化主要得益于以下几个方面的因素:生活节奏的加快:现代人的生活节奏越来越快,时间变得尤为宝贵。在线电影......
  • 基于Java+SpringBoot+Mysql实现的在线电影订票系统部分功能设计与实现六
    一、前言介绍:1.1项目摘要随着互联网技术的飞速发展和普及,人们的娱乐消费方式发生了巨大变化。在线娱乐平台,特别是电影订票系统,成为了现代人观影的主要选择之一。这一变化主要得益于以下几个方面的因素:生活节奏的加快:现代人的生活节奏越来越快,时间变得尤为宝贵。在线电影......
  • Spring Boot 中使用 JSON Schema 来校验复杂JSON数据
    JSON是我们编写API时候用于数据传递的常用格式,那么你是否知道JSONSchema呢?在数据交换领域,JSONSchema以其强大的标准化能力,为定义和规范JSON数据的结构与规则提供了有力支持。通过一系列精心设计的关键字,JSONSchema能够详尽地描述数据的各项属性。然而,仅凭JSONSchema本......