• SSM-Spring-23:概念《Spring中的事务是什么?》


    ------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥-------------

    本篇博客会详细讲述Spring中的事务,会展开来用语言解释,用于了解概念和准备面试

    事务的概念

      一个或者一组sql语句来完成一个功能要么都执行,要么都不执行

    事务具有的四个特性:  ACID特性!

            01.原子性:一个事物都是一个不可分割的单位!所有的操作 要么都执行,要么都不执行!

            02.一致性:事务必须是数据库从一个一致性的状态到达另一个一致性的状态!

            03.隔离性:一个事务的执行不会被其他的事务干扰!事务之间相互独立!

            04.持久性:事务一旦被提交!这个操作对数据库来说是永久性的!

    Spring的事务管理

             事务本事是数据库中的概念! 按理说应该在数据访问层(dao)

            

            绝大多数的情况下我们是把事务 提升到  业务逻辑层

            01.使用spring的事务代理工厂 来 管理事务!

            02.使用spring的注解                来 管理事务!     常用

            03.使用AspectJ的AOP配置     来 管理事务!      常用

    需要掌握的两个属性名:        

      isolation:事务的隔离级别

               01.default:采用数据库默认的事务隔离级别

                   001.mysql ---》repeatable-read

                   002.oracle---》read_committed

               02. repeatable-read:可重复读取!解决了脏读,不可重复读,没解决幻读!

               03. read_committed读已提交! 解决了脏读,没解决不可重复读,幻读!

               04. read_uncommitted读未提交!什么都没有解决!

               05. serializable串行化!级别最高!效率最低!不存在并发的问题!

            propagation: 事务的传播行为:一共7中方式!

               01.required:是spring默认的事务传播行为!

                      指定的方法必须在事务中执行!如果没有事务,则会自动创建一个事务!

               02.supports:有事务就在事务环境下执行,没有事务就直接执行!

               03.mandatory:

                      指定的方法必须在事务中执行!如果没有事务,则抛出异常!

               04.requires_new:总是新创建一个事务!

                  如果当前方法存在事务,则把当前的事务挂起,直到新创建的事务执行完毕后执行!

               05.not_supported:指定的方法不能在事务中执行!如果当前方法存在事务,则把当前的事务挂起!

               06.never:指定的方法不能在事务中执行!如果当前方法存在事务,则抛出异常!

               07.nested:指定的方法必须在事务内执行!

                   如果执行的方法没有事务,则会创建一个事务!

                   如果执行的方法没有事务,则会嵌套执行!

            

           timeout_default:定义了事务默认的超时时间

    Spring事务管理的接口:PlatformTransactionManager

              常用的两个实现类:

              01.使用jdbc和MyBatis时     使用DataSourceTrancationManager

              02.使用hibernate时              使用HibernateTrancationManager

    Spring事务回滚的方式

              默认的回滚方式--》发生运行时异常回滚!发送受查异常时提交!

              受查异常肯定需要我们手动的设置回滚方式!

              运行时异常严重!一旦发生,JVM中止执行!

    实现自定义异常类!RuntimeException -->  Exception --->  Throwable

  • 相关阅读:
    linux 解压文件
    linux 文件夹操作
    adb 安装apk报INSTALL_FAILED_NO_MATCHING_ABIS
    Android Tab类型主界面 Fragment+TabPageIndicator+ViewPager
    Android 图表
    Android Manifest文件
    BroadcastReceiver介绍
    Android dimen
    Android Dialog
    Android 获取加速传感器的值,并去除杂音
  • 原文地址:https://www.cnblogs.com/DawnCHENXI/p/9143711.html
Copyright © 2020-2023  润新知