事务

作者: 绝对熙俊 | 来源:发表于2019-02-25 11:06 被阅读0次

    事务的传播机制

    propagation=


    Propagation.REQUIRED:
    必须要有事务,如果原来有事务则假如原事务,原来没有事务则新建个事务执行

    Propagation.NOT_SUPPORTED:
    不开启事务

    Propagation.REQUIRES_NEW:
    不管是否原来有事务,都新开启一个事务,将原来的事务挂起,等本事务执行完毕之后,再继续原来的事务

    Propagation.MANDATORY:
    必须要在一个事务中执行,如果原来没有事务,则直接异常

    Propagation.NEVER:
    必须没有事务执行,如果原来有事务,则直接异常

    Propagation.SUPPORTS:
    依调用该方法的地方为准,调用方有事务就按照他的事务执行,如果没有事务就无事务执行

    事务会出现的问题

    脏读:
    一个事务读取到另一事务未提交的更新数据
    隔离级别为读未提交会出现脏读,隔离级别高于读未提交可以解决该问题

    不可重复读:
    同一事务中多次读取数据返回结果不同,原因是其他事务在本事务读取数据的事务中改动了对应的数据
    隔离级别为读未提交读已提交会出现不可重复读,隔离级别高于读已提交可解决该问题

    幻读:
    一个事务读取到另一个事务已经提交的 insert 数据
    隔离级别为读已提交可重复读会出现幻读,隔离级别高于可重复读可解决该问题

    事务隔离级别

    isolation =


    Isolation.READ_UNCOMMITTED
    读取未提交数据(会出现脏读, 不可重复读) 基本不使用

    Isolation.READ_COMMITTED
    读取已提交数据(会出现不可重复读和幻读)

    Isolation.REPEATABLE_READ
    可重复读(会出现幻读)

    Isolation.SERIALIZABLE
    串行化

    相关文章

      网友评论

          本文标题:事务

          本文链接:https://www.haomeiwen.com/subject/lxaulqtx.html