• spring事务


    事务是不可分割的操作集合

    事务的四大特性

    1. 原子性
      说事务是一个不可分割的整体,同一个事务中的多条语句是不可分割的。
    2. 一致性
      事务执行的结果必须使数据库从一个一致状态变换到另一个一致状态。
    3. 隔离性
      一个事务的执行不能被其他事务干扰,即一个事务内部的操作及使用的数据对其他事务是隔离的,并发执行的各个事务之间不能互相干扰。
    4. 持久性
      也称永久性,指一个事务一旦提交,对数据库的改变是永久的。

    MySQL事务的隔离级别

    数据库事务的隔离级别有4种,由低到高分别为Read uncommitted 、Read committed 、Repeatable read 、Serializable 。而且,在事务的并发操作中可能会出现脏读,不可重复读,幻读。

    脏读

    表示一个事务能够读取另一个事务中还未提交的数据

    不可重复读

    事务在两次读取之间该数据被其它事务所修改,则两次读取的数据不同,我们称之为不可重复读。

    幻读

    指同一个事务内多次查询返回的结果集不一样,一个事务新增或者删除或者修改了第一个事务结果集里面的数据,同一个记录的数据内容被修改了,所有数据行的记录就变多或者变少了。

    事务隔离级别

    在这里插入图片描述

    Spring的事务传播行为

    1. PROPAGATION_REQUIRED:如果当前没有事务,就创建一个新事务,如果当前存在事务,就加入该事务,该设置是最常用的设置。
    2. PROPAGATION_SUPPORTS:支持当前事务,如果当前存在事务,就加入该事务,如果当前不存在事务,就以非事务执行。
    3. PROPAGATION_MANDATORY:支持当前事务,如果当前存在事务,就加入该事务,如果当前不存在事务,就抛出异常。
    4. PROPAGATION_REQUIRES_NEW:创建新事务,无论当前存不存在事务,都创建新事务。
    5. PROPAGATION_NOT_SUPPORTED:以非事务方式执行操作,如果当前存在事务,就把当前事务挂起。
    6. PROPAGATION_NEVER:以非事务方式执行,如果当前存在事务,则抛出异常。
    7. PROPAGATION_NESTED:如果当前存在事务,则在嵌套事务内执行。如果当前没有事务,则按 REQUIRED 属性执行。
      在这里插入图片描述
  • 相关阅读:
    PostgreSQL常用指令
    JAVA:以递归形式实现Pow函数功能算法(附完整源码)
    MongoDB 文档更新update
    [C#]关于委托delegate的场景假设及代码模拟-B
    钉钉自动打卡
    覆盖率检查工具:JaCoCo 食用指南
    谷歌公开自动驾驶新专利:通过眼睛注视向量,精确判断注意力
    [hadoop全分布部署]安装Hadoop、配置Hadoop 配置文件①
    重塑电商科技版图:从传统架构迈向DDD的华丽蜕变之路
    【JMeter】 二次开发插件开发 Dubbo 接口测试插件浅析
  • 原文地址:https://blog.csdn.net/qq_56851614/article/details/126527794