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

本篇博客会详细讲述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

SSM-Spring-23:概念《Spring中的事务是什么?》的更多相关文章

  1. spring + myBatis 常见错误:注解事务不回滚

    最近项目在用springMVC+spring+myBatis框架,在配置事务的时候发现一个事务不能回滚的问题. 刚开始配置如下:springMVC.xml配置内容: spring.xml配置内容 从上 ...

  2. SQL Server 中的事务与事务隔离级别以及如何理解脏读, 未提交读,不可重复读和幻读产生的过程和原因

    原本打算写有关 SSIS Package 中的事务控制过程的,但是发现很多基本的概念还是需要有 SQL Server 事务和事务的隔离级别做基础铺垫.所以花了点时间,把 SQL Server 数据库中 ...

  3. SQL Server中的事务与其隔离级别之脏读, 未提交读,不可重复读和幻读

    原本打算写有关 SSIS Package 中的事务控制过程的,但是发现很多基本的概念还是需要有 SQL Server 事务和事务的隔离级别做基础铺垫.所以花了点时间,把 SQL Server 数据库中 ...

  4. Spring中@Transactional事务回滚实例及源码

    一.使用场景举例 在了解@Transactional怎么用之前我们必须要先知道@Transactional有什么用.下面举个栗子:比如一个部门里面有很多成员,这两者分别保存在部门表和成员表里面,在删除 ...

  5. Spring中@Transactional事务回滚(含实例详细讲解,附源码)

    一.使用场景举例 在了解@Transactional怎么用之前我们必须要先知道@Transactional有什么用.下面举个栗子:比如一个部门里面有很多成员,这两者分别保存在部门表和成员表里面,在删除 ...

  6. Spring,SpringMvc配置常见的坑,注解的使用注意事项,applicationContext.xml和spring.mvc.xml配置注意事项,spring中的事务失效,事务不回滚原因

    1.Spring中的applicationContext.xml配置错误导致的异常 异常信息: org.apache.ibatis.binding.BindingException: Invalid ...

  7. Spring中@Transactional事务回滚

    转载: Spring中@Transactional事务回滚 一.使用场景举例 在了解@Transactional怎么用之前我们必须要先知道@Transactional有什么用.下面举个栗子:比如一个部 ...

  8. 程序员笔记|Spring IoC、面向切面编程、事务管理等Spring基本概念详解

    一.Spring IoC 1.1 重要概念 1)控制反转(Inversion of control) 控制反转是一种通过描述(在java中通过xml或者注解)并通过第三方去产生或获取特定对象的方式. ...

  9. Spring中@Transactional事务回滚(含实例具体解说,附源代码)

    一.使用场景举例 在了解@Transactional怎么用之前我们必须要先知道@Transactional有什么用. 以下举个栗子:比方一个部门里面有非常多成员,这两者分别保存在部门表和成员表里面,在 ...

随机推荐

  1. servlet-api-2.5.jar - jar not loaded

    由于包重复,把发布后的项目中的servlet-api-2.5.jar删除,不要clean项目,直接重新启动server即可.由于优先使用项目中的包,而实际使用需要tomcat中的包导致,直入页面会报o ...

  2. Loj#572. 「LibreOJ Round #11」Misaka Network 与求和

    题目 有生之年我竟然能\(A\) 这个题求的是这个 \[\sum_{i=1}^n\sum_{j=1}^nf(gcd(i,j))^k\] \(f(i)\)定义为\(i\)的次大质因子,其中\(f(p)= ...

  3. css3中的变形 transform详解

    一.变形-旋转 ratate()函数 通过指定的角度参数使元素相对原点进行旋转.它主要在二维空间内进行操作,设置一个角度值,用来指定旋转的幅度.如果这个值为正值,元素相对原点中心顺时针旋转:如果这 个 ...

  4. R语言学习笔记1——R语言中的基本对象

    R语言,一种自由软件编程语言与操作环境,主要用于统计分析.绘图.数据挖掘.R本来是由来自新西兰奥克兰大学的Ross Ihaka和Robert Gentleman开发(也因此称为R),现在由“R开发核心 ...

  5. caffe 学习(2)——基本原理

    参考 http://caffe.berkeleyvision.org/tutorial/ 表达:models和optimizations使用纯文本文档形式定义,不是用代码定义: 速度:适用于工业和科研 ...

  6. Canvas制作的下雨动画

    简介 在codepen上看到一个Canvas做的下雨效果动画,感觉蛮有意思的.就研究了下,这里来分享下,实现技巧.效果可以见下面的链接. 霓虹雨: http://codepen.io/natewile ...

  7. http1.X与2.0

    HTTP HTTP 1.X HTTP是建立在TCP协议上的,HTTP协议的瓶颈及优化都是基于TCP协议本身的特性. TCP建立连接时有三次握手 会有1.5RTT的延迟,为了避免每次请求都经历握手待来的 ...

  8. SSM项目之电商项目easymall(一)

    一 环境准备 软件环境:    1 jdk1.8       JAVA_HOME:是给软件用的,各种启动的软件都会寻找JAVA_HOME的环境变量:       Path:给windows用的:   ...

  9. 使用 Solr 构建企业级搜索服务器

    最近因项目需要一个全文搜索引擎服务, 在考察了Lucene及Solr后,我们选择了Solr. 本文简要记录了基于Solr搭建一个企业搜索服务器的过程.网上的资料太多千篇一律,也可能版本不同,总之在参照 ...

  10. iOS:文件操作相关(18-03-23更)

    0.iOS文件系统 1.工程内文件 2.文件夹管理 3.文件操作 4.NSCache 附录: 1.沙盒文件夹.文件大小 2.清除沙盒 Library / Cache 下所有数据 3.测试plist 0 ...