zoukankan      html  css  js  c++  java
  • spring~3

    1、什么是事务?

    事务是逻辑上的一组操作,组成这组操作的各个逻辑单元,要么一起成功,要么一起失败

    2、事务的特性

    原子性:强调事务的不可分割

    一致性:事务的执行的前后数据的完整性保持一致

    隔离性:一个事务执行的过程中,不应该受到其他事务的干扰

    持久性:事务一旦结束,数据就持久到数据库中

    3、如果不考虑隔离性引发安全性问题

    脏读:一个事务读到了另一个事务的未提交的数据

    不可重复读:一个事务读到了另一个事务已经提交的update的数据,导致多次查询结果不一致

    虚幻读:一个事务读到了另一个事务已经提交的insert的数据,导致多次查询结果不一致

    4、解决读问题:设置事务隔离级别

    未提交读:脏读,不可重复读,虚度都有可能发生

    已提交读:避免脏读。但是不可重复读和虚读有可能发生

    可重复读:避免脏读和不可重复读。但是虚读有可能发生

    串行化读:避免以上多有问题

    Mysql:默认可重复读

    Oracle:默认已提交读

    5、事务的传播行为

    保证在同一个事务中

    PROPAGATION_REQUIRED  支持当前事务,如果不存在,就新建一个(默认)

    PROPAGATION_SUPPORTS  支持当前事务,如果不存在,就不是用事务

    PROPAGATION_MANDATORY  支持当前事务,如果存在,抛出异常

    保证不在同一个事务中

    PROPAGATION_REQUIRED_NEW  支持当前事务存在,挂起当前事务,创建一个新的事务

    PROPAGATION_NOT_SUPPORTED  以非事务方式运行,如果有事务存在,挂起当前事务

    PROPAGATION_NEVER       以非事务方式运行,如果有事务存在,抛出异常

    PROPAGATION_NESTED      如果当前事务存在,则嵌套事务执行

  • 相关阅读:
    持久化类的三种状态
    Hibernate持久化类规则
    JSP之Bean
    JSP动作标签
    JSP九大内置对象
    Jsp指令
    JSTL标签语言
    JSP之EL表达式
    Java 中的 Characters
    汇编基本语法
  • 原文地址:https://www.cnblogs.com/xiaoxli/p/9593271.html
Copyright © 2011-2022 走看看