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:串行读,最高隔离机制,完全锁定事务相关表

  • 相关阅读:
    VS2008环境下的Freeglut 2.6.0配置
    Qt Creator and Clang
    qml 4.8 bug: ListView.view不能访问
    Qt platform mkspecs
    未在本地计算机上注册“Microsoft.Jet.OleDb.4.0”提供程序
    SSIS学习之数据挖掘
    SQL循环执行while控制
    SQL Server查询优化50法
    SSAS使用时间智能解决本年累计、同比、环比【转载】
    企业信息门户:EIP系统
  • 原文地址:https://www.cnblogs.com/adealjason/p/6500971.html
Copyright © 2011-2022 走看看