Spring管理事务知识

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

目录

1.什么是事务

2.事务的特性ACID

3.Spring 管理事务的方式

4.Spring管理事务的体现:JDBCTemplate

5.声明式事务的属性有哪些

6.声明式事务属性---只读

7.声明式事务属性---超时

8.声明式事务属性---回滚策略

9.声明式事务属性---事务隔离级别

10.声明式事务属性---事务传播行为


1.什么是事务

 概念:事务就是一种SQL语句执行的缓存机制,不会单条执行完毕就更新数据库数据,最终根据缓存内的多条语句执行结果统一判定:

        所有执行结果判定成功:触发commit提交事务来结束事务,更新数据

        任意一个执行结果失败:触发rollback回滚结束事务

优势:允许在失败情况下,数据回到业务之前的状态

2.事务的特性ACID

Atomicity-原子性:事务是一个不可分割的工作单位,事务中的操作要么都执行,要么都不执行

Consistency-一致性:事务必须使数据库从一个一致性状态变换到另外一个一致性状态

Isolation-隔离性:事务的隔离性指事务并发执行时,不会被其他事务干扰

Durability-持久性:一个事务一旦被提交,它对数据库数据的改变就是永久性的

3.Spring 管理事务的方式

编程式事务:将业务逻辑一层一层全部代码实现,通常是使用TransactionTemplate手动管理事务,应用很少

声明式事务:使用xml配置文件或者基于注解管理事务,即使用AOP管理事务;提高了开发效率,能够优化性能

4.Spring管理事务的体现:JDBCTemplate

1.JDBCTemplate的位置:是Spring封装JDBC后形成的框架---SpringJDBC的一个类

2.为什么需要JDBCTemplateJDBCTemplate中有各种对数据库增删改查的方法,方便操作数据库

5.声明式事务的属性有哪些

1.属性有:只读、超时、回滚策略、事务隔离级别、事务传播行为

2.设置方式:使用@Transaction注解,设置相对应的属性

Spring管理事务知识

 

6.声明式事务属性---只读

1.设置只读:

@Transactional(
    readOnly = true
)

2.作用:对于一个设置为只读的查询操作,数据库就知道该操作不涉及写操作,从而针对性优化

7.声明式事务属性---超时

1.设置超时:

@Transactional(
    timeout = 3
)

2.作用:在XXXs时间内未执行完毕就强制回滚;

8.声明式事务属性---回滚策略

1.设置回滚

@Transactional(
    rollbackFor = Exception.class
    rollbackForClassName = java.lang.Exception
    noRollbackFor = Exception.class
    noRollbackForClassName = java.lang.Exception
)

2. 回滚策略的四个属性:

        因为…而回滚:

                rollbackFor属性:需要设置一个Class类型的对象
                rollbackForClassName属性:需要设置一个字符串类型的全类名

        不因为…而回滚:
                noRollbackFor属性:需要设置一个Class类型的对象
                noRollbackForClassName属性:需要设置一个字符串类型的全类名

3.作用:以下列代码为例:

@Transactional(
    noRollbackForClassName = java.lang.Exception
)

该代码的意思是:在事务执行的过程中,即使发生了Exception也不会发生回滚,事务正常执行

 

9.声明式事务属性---事务隔离级别

1.设置隔离级别为默认级别(在mysql中为可重复读)

@Transactional(
    isolation = Isolation.DEFAULT
)

2.什么是隔离级别:事务与其他事务的隔离程度;隔离级别越高,数据一致性越好,并发性越弱

3.隔离级别有几种:

        从低到高为:读未提交、读已提交、可重复读(默认)、串行化

4.不同的隔离级别产生的脏读、不可重复读、幻读情况

Spring管理事务知识

10.声明式事务属性---事务传播行为

1.设置事务传播行为:表示不管当前线程上是否有已经开启的事务,都要开启新事务

@Transactional(
    propagation = Propagation.REQUIRES_NEW
)

2. propagation(枚举类)属性的值有:

        propagation=Propagation.REQUIRED:默认情况,表示如果当前线程上有已经开启的事务可用,那么就在这个事务中运行。

        propagation=Propagation.REQUIRES_NEW:表示不管当前线程上是否有已经开启的事务,都要开启新事务文章来源地址https://www.toymoban.com/news/detail-511064.html

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

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

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

相关文章

  • 数据库事务是什么?事务的四大特性是什么?

    事务是一组原子性的 SQL 语句,或者说一个独立的工作单元。如果数据库引擎能够成功地对数据库应用该组操作的全部语句,那么就执行该组查询。如果其中任何一条语句因为崩溃或其他原因无法执行,那么所有的语句都不会执行。也就是说,事务内的语句,要么全部执行成

    2024年02月05日
    浏览(52)
  • Spring事务的四大特性+事务的传播机制+隔离机制

    原子性是指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生。 事务是一个原子操作, 由一系列动作组成。 组成一个事务的多个数据库操作是一个不可分割的原子单元 ,只有所有的操作执行成功,整个事务才提交。 事务中的任何一个数据库操作失败

    2024年01月20日
    浏览(40)
  • Spring——Spring事务的实现方式及传播特性

    Spring事务的特性及隔离级别同事务,详情请见 事务——什么是事务,事务的特性,事务的隔离级别_醉酒的戈多的博客-CSDN博客 在使用Spring框架的时候,有以下两种事务的实现方式: 编程式事务:用户自己通过代码来控制事务的处理逻辑 声明式事务:通过@Transactional注解来实

    2024年02月13日
    浏览(38)
  • 【Spring Boot】事务的隔离级别与事务的传播特性详解:如何在 Spring 中使用事务?不同隔离级别的区别?

    事务这个词在学习 MySQL 和多线程并发编程的时候,想必大家或多或少接触过。 那么什么是事务呢? 事务是指一组操作作为一个不可分割的执行单元,要么全部成功执行,要么全部失败回滚。在数据库中,事务可以保证数据的一致性、完整性和稳定性,同时避免了数据的异常

    2024年02月13日
    浏览(43)
  • 事务管理,事务的概念(原子性、一致性、隔离性和持久性(ACID特性))、事务的控制(BEGIN、COMMIT和ROLLBACK)

    目录 什么是事务 事务的基本特性: 原子性(Atomicity): 一致性(Consistency): 隔离性(Isolation): 持久性(Durability): 使用事务来维护数据的完整性 原子性(Atomicity): 一致性(Consistency): 事务日志(Transaction Logs): 外键约束(Foreign Key Constraints): 唯一约束(U

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

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

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

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

    2024年02月03日
    浏览(98)
  • Spring使用@Transactional 管理事务,Java事务详解。

    B站视频:https://www.bilibili.com/video/BV1eV411u7cg 技术文档:https://d9bp4nr5ye.feishu.cn/wiki/HX50wdHFyiFoLrkfEAAcTBdinvh 简单来说事务就是一组对数据库的操作 要么都成功,要么都失败。 事务要保证可靠性,必须具备四个特性:ACID。 A:原子性:事务是一个原子操作单元,要么完全执行,要么

    2024年02月11日
    浏览(31)
  • spring事务管理详解和实例(事务传播机制、事务隔离级别)

    目录 1 理解spring事务 2 核心接口 2.1 事务管理器 2.1.1 JDBC事务 2.1.2 Hibernate事务 2.1.3 Java持久化API事务(JPA) 2.2 基本事务属性的定义 2.2.1 传播行为 2.2.2 隔离级别 2.2.3 只读 2.2.4 事务超时 2.2.5 回滚规则 2.3 事务状态 3 编程式事务 3.1 编程式和声明式事务的区别 3.2 如何实现编程式

    2024年02月06日
    浏览(44)
  • Spring之事务管理

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

    2024年02月13日
    浏览(68)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包