• 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 属性执行。
      在这里插入图片描述
  • 相关阅读:
    探索云原生容器编排技术:如Kubernetes如何为大数据处理和AI模型的自动化部署带来便利
    影刀-验证码识别
    Nacos源码分析专题(二)-服务注册
    二十七、java版 SpringCloud分布式微服务云架构之Java 枚举(enum)
    NSSCTF做题(3)
    Tekton — 通过tekton-operator部署tekton组件
    8. React.createClass 和 extends Component 的区别有哪些?
    C#通过C++操作共享内存和Python通讯[C#调用exe不显示窗口]
    VHDL实现任意大小矩阵乘法运算
    星戈瑞Annexin V-FITC细胞凋亡检测试剂盒
  • 原文地址:https://blog.csdn.net/qq_56851614/article/details/126527794