zoukankan      html  css  js  c++  java
  • Spring事务管理(详解+实例)

    http://www.mamicode.com/info-detail-1248286.html

    传统的事务分为ACID

    A:原子性,表示一个事务的多个操作要么同时成功,要么同时失败

    C:一致性,表示一个原理的业务处理不能存在部分成功,部分失败的情况

    I:隔离性,多个事务执行时,数据需要隔离

    D:持久性,事务执行完成后,数据持久化,可以恢复

    spring的事务定义分为如下几个部分:

    传播机制、隔离机制、超时时间、是否只读、回滚机制

    7种事务传播机制:

    propogation_required:当前方法必须运行在事务中,如果事务存在,则加入该事务,否则开启一个新事务

    propogation_required_new:当前方法必须运行在自己的事务中,当前方法执行时,该事务挂起

    propogation_supports:当前方法不需要事务上下文,如果存在事务则加入

    propogation_not_supported:当前方法不支持事务上下文,如果存在事务则挂起

    propogation_mandatory:当前事务必须运行在事务中,如果不再存事务则报异常

    popogation_never:当前事务不能运行在事务当中,如果存在事务则报异常

    propogation_nested:事务嵌套,如果存在当前事务,该方法运行在嵌套事务中,嵌套的事务可以独立的提交或回滚,如果不存在事务开启一个新事务

    事务的隔离级别:

    事务的隔离级别定义了一个事务可能受其他并发事务的影响程度

    并发事务影响的问题:

    1.脏读:一个事务读取了并发事务尚未提交的数据,如果该数据回滚则数据就无效了

    2.不可重复读:多次读取数据同一数据结果不一致

    3.幻读:多次执行同一查询,结果不一致

    五大隔离级别:

    1.ISOLATION_DEFAULT:使用后端数据库默认的隔离级别

    2.ISOLATION_READ_UNCOMMITTED:读未提交,最低的隔离级别,允许读取尚未提交的数据变更

    3.ISOLATION_READ_COMMITTED允许读取并发事务已经提交的数据

    4.ISOLATION_REPEATABLE_READ:可重复读,同一个字段多次读取结果一致

    5.ISOLATION_SERIALIZABLE:串行读,最高隔离机制,完全锁定事务相关表

  • 相关阅读:
    CF1137FMatches Are Not a Child‘s Play【LCT】
    P4491[HAOI2018]染色【多项式,二项式反演】
    P3170[CQOI2015]标识设计【插头dp】
    log4j 使用教程说明
    log4j中Logger.getLogger()加载一个类提示错误
    编程基础 0x00008 的0x代表什么?
    编程基础 快速的进行 2进制,10进制,16进制 的 相互转换
    Java 基础 equals,hashcode和==的区别
    位运算 左移右移运算符 >>, <<, >>>
    Java 虚拟机 2.2 运行时数据区 Runtime Data Area
  • 原文地址:https://www.cnblogs.com/adealjason/p/6500971.html
Copyright © 2011-2022 走看看