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. 回滚规则:运行时异常回滚,受检查异常不回滚;也可以手动设置某一个异常回滚
  • 相关阅读:
    Java线程状态及Thread类中的主要方法
    Kali Linux 装好系统后安装经常使用软件
    Setup SSH and SVN on Windows Server
    sql plus 抢救数据(測)
    利用用户自己的server、tomcat下的解决iOS7.1企业应用无法安装应用程序 由于证书无效的问题
    mysql基本操作【重要】
    Mybatis逆向工程——(十四)
    lucene查询索引之QueryParser解析查询——(八)
    lucene查询索引之Query子类查询——(七)
    lucene修改索引——(六)
  • 原文地址:https://www.cnblogs.com/yu-xia-zheng-ye/p/13479846.html
Copyright © 2011-2022 走看看