zoukankan      html  css  js  c++  java
  • spring事务

    (20200811将这些天复习的内容放到博客备份)

    spring事务

    1. 事务的特性:ACID(同数据库四大特性)
    2. 配置方式:

    (1) 编程式事务管理:侵入式事务管理,直接使用TransactionTemplate进行管理

    (2) 声明式事务管理:非侵入式事务管理,只需在配置文件中做相关文件声明或者使用注解;缺点:声明式事务管理管理的粒度是方法级别,而编程式事务管理是可以到代码块的

     

    1. 事物的传播机制(特性):

    (1) PROPAGATION_REQUIRED:spring的默认传播机制,如果外层有事务,则和外层的事务一起提交和回滚,如果外层没有事务,则创建一个事务执行。

    (2) PROPAGATION_REQUES_NEW:外层有事物,挂起外层事务,待当前事务执行完再恢复外层事务;外层没有事务,创建一个事务执行

    (3) PROPAGATION_SUPPOT:外层有事物,就加入外层事务执行,外层没有事务就按非事务方式执行

    (4) PROPAGATION_NOT_SUPPOT:外层有事务,就挂起外层事务,待当前代码执行完,再恢复外层事务;外层没有事物,就按非事务方式执行

    (5) PROPAGATION_NEVER:外层有事物,就抛出异常

    (6) PROPAGATION_MANDATORY:外层没有事务,就抛出异常

    (7) PROPAGATION_NESTED:外层有事物就嵌套进外层事务;外层没有事务就创建一个事务执行(类似PROPAGATION_REQUIRED )。特点是有状态保存点,就是当前事务回滚到某个点,从而避免所有嵌套事务都回退,各自回退各自的

    1. 事务的隔离级别:

    (1) ISOLATION_DEFAULT(默认):后端数据库默认端隔离级别

    (2) ISOLATION_READ_UNCOMMITED(未提交读):允许读未提交的数据,存在的问题:脏读,不可重复度,幻象读

    (3) ISOLATION_REAF_COMMITIED(已提交读,Oracle默认隔离级别):允许读取已提交的数据;已解决的问题:脏读,未解决的问题:不可重复读,幻想读

    (4) ISOLATION_REPEATABLE_READ(可重复读,MySQL默认隔离级别):对相同字段多次读取时一致的;已解决的问题:脏读,不可重复读,未解决的问题:幻象读

    (5) ISOLATON_SERIALIZABLE(可序列化):完全服从ACID的隔离级别,确保不发生脏读,不可重复的,幻象读

    1. 只读事务:没有修改操作,会在运行时做一定的优化
    2. 事务超时:给一个事务设置一个最长运行时间,若超过这个时间还没完成,就自动回滚事务。若一个事务长时间运行,不必要的占用数据库资源
    3. 回滚规则:运行时异常回滚,受检查异常不回滚;也可以手动设置某一个异常回滚
  • 相关阅读:
    Codeforces467C George and Job
    Codeforces205E Little Elephant and Furik and RubikLittle Elephant and Furik and Rubik
    Codeforce205C Little Elephant and Interval
    51nod1829 函数
    51nod1574 排列转换
    nowcoder35B 小AA的数列
    Codeforce893E Counting Arrays
    gym101612 Consonant Fencity
    CodeForces559C Gerald and Giant Chess
    CodeForces456D A Lot of Games
  • 原文地址:https://www.cnblogs.com/yu-xia-zheng-ye/p/13479846.html
Copyright © 2011-2022 走看看