zoukankan      html  css  js  c++  java
  • Spring事务隔离级别

      spring没有事务和隔离级别的实现,而是依赖于具体数据库里的实现。

      spring-tx包里的,其实主要是通过tx-manager去做事务管理,我们一般说是事务管理器。

      注:mysql 事务隔离级别:https://www.cnblogs.com/Jomini/p/14016414.html

    Spring 事务隔离级别  

      TransactionDefinition接口中定义了五个表示隔离级别的常量

    1、默认级别  TransactionDefinition.ISOLATION_DEFAULT

      使用后端数据库默认的隔离界别,MySQL默认采用的REPEATABLE_READ隔离级别,Oracle默认采用的READ_COMMITTED隔离级别。

    2、未提交读  TransactionDefinition.ISOLATION_READ_UNCOMMITTED

      最低的隔离级别,允许读取,允许读取尚未提交的的数据变更,可能会导致脏读、幻读或不可重复读。

     

    3、提交读 TransactionDefinition.ISOLATION_READ_COMMITTED

      允许读取并发事务已经提交的数据,可以阻止脏读,但是幻读或不可重复读仍有可能发生。

     

    4、重复读 TransactionDefinition.ISOLATION_REPEATABLE_READ

      对同一字段的多次读取结果都是一致的,除非数据是被本身事务自己所修改,可以阻止脏读和不可重复读,但幻读仍有可能发生。

    5、序列化 TransactionDefinition.ISOLATION_SERIALIZABLE

      最高的隔离级别,完全服从ACID的隔离级别。所有的事务依次逐个执行,这样事务之间就完全不可能产生干扰,也就说,该级别可以阻止脏读、不可重复读以及幻读。但是这将严重影响程序的性能。通常情况下也不会用到该级别。

  • 相关阅读:
    ubuntu16.04以及各个版本镜像网址汇总
    linux0.11的进程1的创建和执行
    linux0.11的0号进程详解
    Linux命令
    Vim命令
    CentOS7静态IP设置
    Fiddler常用设置
    Python日期计算
    Python完全平方数
    pip
  • 原文地址:https://www.cnblogs.com/Jomini/p/14016229.html
Copyright © 2011-2022 走看看