• Spring事务管理


    1.什么是事务

      事务指的是逻辑上的一组操作,这组操作要么全部成功,要么全部失败。

    2.事物的特性

     1.原子性<br>指的是事物是一个不可分割的部分,要么都发生。要么都不发生

     2.隔离性   多个并发事务之间数据要相互隔离

     3.一致性   事务处理前后数据的完整性必须保持一致

     4.持久性  一个事务被提交之后。它对数据库中数据的改变是持久的

    3.Spring事物管理常用的3个接口:

     

    4.Spring为不同的持久层框架提供不同的PlatformTransactionManager(接口)的实现

    5.如果不考虑隔离。会引发的问题:
    1.脏读。
    一个事务读取了另一个事务改写但还未提交的数据,如果这些数据被回滚,则读到的数据是无效的。
    2.不可重复读。
    在同一个事务中,多次读取同一数据返回的结果有所不同。
    3.幻读。
    一个事务读取了几行记录后,另一个事务插入一些记录,幻读就发生了。再后来的查询中,第一个事务就会发现有些原来没有的记录。
    
    MySQL默认事务隔离级别:REPATABLE_READ(可能出现幻读)
    Oracle默认:READ_COMMITTED(可能出现不可重复读和幻读)
    6.事务的传播行为:解决业务层方法之间相互调用 的问题:



    7.事务的传播行为,重点记住红色的3个。


    8.Spring支持两种方式事务管理:


    9.声明式事务管理方式二:基于AspectJ的XML方式
    配置步骤:1.事物管理器
              2.增强(就是配置通知)
              3.AOP配置

    10.声明式事务管理方式三:基于注解的方式

      1.applicationContext.xml里配置事物管理器和开启注解方式
      2.业务层写上注解@transactional
      3.@transactional(这当中可以配置传播行为,隔离级别等内容)

    11.Spring事物管理的分类和各方式的区别:


    12.
    applicationContext.xml中引入外部文件、连接池的配置、bean的配置



    13.声明式事务管理方式一:基于TransactionProxyFactoryBean的方式
    prop格式,key代表方法,实际开发中可能就是key="save*",key="update*"

    
    
     
     
    
    
    
     
    
    
    
    
    
     
     
     
    
    
    
     
     

     

     

    
    
     
     
  • 相关阅读:
    JavaScript 简单说明(一)
    把mysql5.7源码包生成rpm包
    CentOS下pythonsqlite3安装
    No module named 'MySQLdb' python3.6 + django 1.10 + mysql 无法连接
    python3不再支持mysqldb 请用pymysql和mysql.connector
    元素的自定义特性
    获取元素的页面位置,兼容各浏览器
    通过正则格式化url查询字符串
    borderimage属性在chrome中的不同效果
    获取页面元素的滚动位置,兼容各浏览器
  • 原文地址:https://www.cnblogs.com/jiliunyongjin/p/7299675.html
Copyright © 2020-2023  润新知