【spring(四)】Spring事务管理和@Transactional注解

这篇具有很好参考价值的文章主要介绍了【spring(四)】Spring事务管理和@Transactional注解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

🌈键盘敲烂,年薪30万🌈

目录

Spring中的事务管理

问题抛出:

解决方案:

@Transactional注解:

rollbackFor属性:

propagation属性:

应用:

📕总结


知识回顾:

  • ❓什么是事务

事务是对数据操作的集合,它是数据操作的最小执行单位,也就是说,要么一个事务中操作全部执行完毕,要么全都不执行。

  • 👇事务的四大特性

原子性:事务是数据操作的最小执行单位

一致性:要么全部执行完毕,要么全都不执行

隔离性:事务之间互相独立

持久性:事务提交对数据的修改是永久性的

Spring中的事务管理

问题抛出:

当执行删除部门操作时,该部门下对应的员工也要删除,这两个操作必须保持一致,如果删除部门后程序遇到了异常退出,这就会造成数据不一致。

解决方案:

我们把两个操作看成一个事务,在删除部门时开启事务,删除完员工提交事务,当遇到异常就回滚事务,这样问题就可以解决。

@Transactional注解:

概念:Transctional注解是Spring已经封装好的一个控制事务是否提交和回滚的注解

位置:业务(service)层的方法上、类上、接口上

作用:将当前方法交给spring进行事务管理,方法执行前,开启事务;成功执行完毕,提交事务;出现异常,回滚事务。

注意:Transactional修饰的事务默认遇到运行异常才回滚事务,遇到编译异常或其他异常还是会直接退出程序。

rollbackFor属性:

rollbackFor用于自定义遇到哪些异常时回滚事务。

    @Transactional(rollbackFor = Exception.class) //将该方法看作一个事务,遇到异常回滚,但是默认只是遇到运行异常才会回滚
    @Override
    public void deleteById(Integer id) {
        deptMapper.deleteById(id);  //删除部门信息

        empMapper.deleteByDeptId(id);   //删除员工信息
    }
propagation属性:

事务的传播行为:

一个事务的方法被另一个事务方法调用时,另一个事务该如何控制。

常见的事务传播行为(只记前两个就可):

【spring(四)】Spring事务管理和@Transactional注解,JavaWeb,spring,spring,java,数据库

应用:

需求:解散部门时,无论是成功还是失败,都要记录操作日志。

步骤:

  . 解散部门:删除部门、删除部门下的员工

  . 记录日志到数据库表中

【spring(四)】Spring事务管理和@Transactional注解,JavaWeb,spring,spring,java,数据库

📕总结

@Transactional注解用于控制spring事务管理

@rollbackFor可以指定遇到哪些异常回滚

@propagation指定事务的传播行为文章来源地址https://www.toymoban.com/news/detail-796487.html

到了这里,关于【spring(四)】Spring事务管理和@Transactional注解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 全面掌握Spring框架:深入解析IOC、AOP、事务管理与注解使用

    全面掌握Spring框架:深入解析IOC、AOP、事务管理与注解使用

    探索Spring框架的深层次知识,包括Spring IOC容器的初始化流程、AOP的实现机制、事务管理的细节、循环依赖问题的处理、条件注解的应用、JavaConfig的使用方法、PostProcessor的角色、@Autowired和@Value注解的高级应用,以及${}与#{}的区别。

    2024年03月13日
    浏览(16)
  • Spring——事务注解@Transactional【建议收藏】

    Spring——事务注解@Transactional【建议收藏】

    在某些业务场景下,如果一个请求中,需要同时写入多张表的数据或者执行多条sql,为了保证操作的原子性(要么同时成功,要么同时失败),避免数据不一致的情况,我们一般都会用到事务;Spring框架下,我们经常会使用@Transactional注解来管理事务; 本篇介绍Spring的事务注

    2024年02月03日
    浏览(15)
  • Spring 声明式事务讲解,和 @Transactional注解的用法

    Spring 声明式事务讲解,和 @Transactional注解的用法

    目录 一、Spring框架介绍 二、什么是声明式事务 三、如何解决并发性事务问题 四、@Transactional注解的用法 Spring框架是一个开源的Java应用程序开发框架,旨在简化企业级Java应用程序的开发。它提供了一种轻量级的、全面的编程和配置模型,可以帮助开发人员构建可扩展、模块

    2024年01月25日
    浏览(11)
  • Spring @Transactional注解事务传播机制propagation参数说明

    在SpringBoot项目中,我们通常使用 @Transactional 去进行事务控制,而 @Transactional 注解中,有个比较关键的属性就是 propagation 。在一个 多事务 的环境中,一个事务方法调用另一个事务方法时,就会涉及到事务的传播行为,该属性用来控制一段代码经过多个 @Transactional 注解生效(

    2024年02月11日
    浏览(20)
  • 【Spring】Spring的事务管理

    【Spring】Spring的事务管理

    Spring的事务管理简化了传统的事务管理流程,并且在一定程度上减少了开发者的工作量。 1.1 事务管理的核心接口 在Spring的所有JAR包中包含一个名为Spring-tx-4.3.6.RELEASE的JAR包,该包就是Spring提供的用于事务管理的依赖包。在该JAR包的org.Springframework.transaction包中有3个接口文件:

    2024年02月03日
    浏览(16)
  • 【Spring教程21】Spring框架实战:Spring事务简介、AOP事务管理、代码示例全面详解

    【Spring教程21】Spring框架实战:Spring事务简介、AOP事务管理、代码示例全面详解

    欢迎大家回到《Java教程之Spring30天快速入门》,本教程所有示例均基于Maven实现,如果您对Maven还很陌生,请移步本人的博文《如何在windows11下安装Maven并配置以及 IDEA配置Maven环境》,本文的上一篇为《AOP(面对切面编程)知识总结》 事务作用:在数据层保障一系列的数据库

    2024年02月04日
    浏览(33)
  • Spring 事务管理方案和事务管理器及事务控制的API

    Spring 事务管理方案和事务管理器及事务控制的API

    目录 一、事务管理方案 1. 修改业务层代码 2. 测试 二、事务管理器 1. 简介 2. 在配置文件中引入约束 3. 进行事务配置 三、事务控制的API 1. PlatformTransactionManager接口 2. TransactionDefinition接口 3. TransactionStatus接口 往期专栏文章相关导读  1. Maven系列专栏文章 2. Mybatis系列专栏文

    2024年02月08日
    浏览(16)
  • Spring 事务管理

    Spring 事务管理

    目录 1. 事务管理 1.1. Spring框架的事务支持模型的优势 1.1.1. 全局事务 1.1.2. 本地事务 1.1.3. Spring框架的一致化编程模型 1.2. 了解Spring框架的事务抽象(Transaction Abstraction) 1.2.1. Hibernate 事务设置 1.3. 用事务同步资源 1.3.1. 高级同步方式 1.3.2. 低级同步方式 1.3.3.TransactionAwareDataSo

    2024年02月13日
    浏览(14)
  • Spring的事务管理

    1、事务的回顾 【1】事务的定义 是数据库操作的最小工作单元,是作为单个逻辑工作单元执行的一系列操作,这些操作作为一个整体一起向系统提交,要么都执行、要么都不执行;事务是一组不可再分割的操作集合 【2】事务的ACID原则 事务具有4个基本特性:原子性、一致性

    2023年04月16日
    浏览(19)
  • Spring之事务管理

    Spring之事务管理

    事务是数据库操作最基本单位,要么都成功,要么都失败。 原子性 一致性 隔离性 持久性。 Spring定义了7种传播行为: 传播属性 描述 REQUIRED 如果有事务在运行,当前的方法就在这个事务内运行,否则,就启动一个新的事务,并在自己的事务内运行 REQUIRED_NEW 当前的方法必须

    2024年02月13日
    浏览(16)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包