美文网首页
数据库事务和Spring事务的总结

数据库事务和Spring事务的总结

作者: 子暄_5f17 | 来源:发表于2018-08-01 08:50 被阅读0次

    事务的四个特性ACID

    A:原子性,C:一致性,I:隔离性,D:持久性。

    事务的四个隔离级别:

    1.读未提交:两个事务A,B。A有select语句,B有update操作,B未执行commit时,A事务执行select会读取B未提交的数据。

    2.读已提交:A查询余额1000,B查询余额1000,Bupdate余额100元,B提交。A查询余额100元。

    3.可重复读:A查询余额1000,B查询余额1000,Bupdate余额100,B提交,A查询余额1000.

    4.顺序读:事务只能一个接一个的执行,不能并发。

    脏读:读到未提交的数据。

    不可重复读:一次事务中两次读取相同的列的数据不一样。

    可重复读:一次事务中两次读取相同列的数据一样,针对update操作。

    幻读:一次事务中同样的查询条件,查询的结果第二次比第一次多,针对insert操作。

    Spring的事务的传播特性:

    1.PROPAGATION_REQUIRED:如果当前存在事务,方法将加入到这个事务,不存在,就新建一个事务。

    2.PROPAGATION_REQUIRED_NEW:当前存在事务,挂起当前事务,新建一个新的事务。

    3.PROPAGATION_MANDATORY:当前方法必须运行在事务中,如果不存在事务,就抛出异常。

    4.PROPAGATION_NEVER:当前方法不需要运行在事务,如果是事务调用,就抛出异常。

    5.PROPAGATION_SUPPORTS:当前存在事务就在事务中运行,不存在就正常执行。

    6.PROPAGATION_NOT_SUPPORTED:当前方法不支持事务执行, 如果存在事务,挂起事务,执行完后在继续执行事务。

    7.PROPAGATION_NESTED:当父事务调用到这个方法,此时会创建一个savepoint,启动一个嵌套事务执行该方法。如果方法失败,回滚到savepoint点。嵌套事务是外部事务的一部分,如果外部事务失败了,会全部回滚。

    相关文章

      网友评论

          本文标题:数据库事务和Spring事务的总结

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