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
SSM-Spring-23:概念《Spring中的事务是什么?》的更多相关文章
- spring + myBatis 常见错误:注解事务不回滚
最近项目在用springMVC+spring+myBatis框架,在配置事务的时候发现一个事务不能回滚的问题. 刚开始配置如下:springMVC.xml配置内容: spring.xml配置内容 从上 ...
- SQL Server 中的事务与事务隔离级别以及如何理解脏读, 未提交读,不可重复读和幻读产生的过程和原因
原本打算写有关 SSIS Package 中的事务控制过程的,但是发现很多基本的概念还是需要有 SQL Server 事务和事务的隔离级别做基础铺垫.所以花了点时间,把 SQL Server 数据库中 ...
- SQL Server中的事务与其隔离级别之脏读, 未提交读,不可重复读和幻读
原本打算写有关 SSIS Package 中的事务控制过程的,但是发现很多基本的概念还是需要有 SQL Server 事务和事务的隔离级别做基础铺垫.所以花了点时间,把 SQL Server 数据库中 ...
- Spring中@Transactional事务回滚实例及源码
一.使用场景举例 在了解@Transactional怎么用之前我们必须要先知道@Transactional有什么用.下面举个栗子:比如一个部门里面有很多成员,这两者分别保存在部门表和成员表里面,在删除 ...
- Spring中@Transactional事务回滚(含实例详细讲解,附源码)
一.使用场景举例 在了解@Transactional怎么用之前我们必须要先知道@Transactional有什么用.下面举个栗子:比如一个部门里面有很多成员,这两者分别保存在部门表和成员表里面,在删除 ...
- Spring,SpringMvc配置常见的坑,注解的使用注意事项,applicationContext.xml和spring.mvc.xml配置注意事项,spring中的事务失效,事务不回滚原因
1.Spring中的applicationContext.xml配置错误导致的异常 异常信息: org.apache.ibatis.binding.BindingException: Invalid ...
- Spring中@Transactional事务回滚
转载: Spring中@Transactional事务回滚 一.使用场景举例 在了解@Transactional怎么用之前我们必须要先知道@Transactional有什么用.下面举个栗子:比如一个部 ...
- 程序员笔记|Spring IoC、面向切面编程、事务管理等Spring基本概念详解
一.Spring IoC 1.1 重要概念 1)控制反转(Inversion of control) 控制反转是一种通过描述(在java中通过xml或者注解)并通过第三方去产生或获取特定对象的方式. ...
- Spring中@Transactional事务回滚(含实例具体解说,附源代码)
一.使用场景举例 在了解@Transactional怎么用之前我们必须要先知道@Transactional有什么用. 以下举个栗子:比方一个部门里面有非常多成员,这两者分别保存在部门表和成员表里面,在 ...
随机推荐
- Spring Framework5.0 学习(4)—— Bean的命名id和name区别
Spring中Bean的命名 1.每个Bean可以有一个id属性,并可以根据该id在IoC容器中查找该Bean,该id属性值必须在IoC容器中唯一: 2.可以不指定id属性,只指定全限定类名,如: & ...
- 第三篇——第二部分——第一文 SQL Server镜像简单介绍
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/DBA_Huangzj/article/details/26951563 原文出处:http://bl ...
- 为什么机器能够学习——PAC Learnability
机器学习中,我们根据训练集训练一个模型,来对测试数据进行预测.通常我们并不关心模型在训练集上的好坏(即训练误差,in sample error),举个简单例子,我们想要根据前六个月股市行情训练一个模型 ...
- window7及以上 创建软链接 mklink
软链接是一种文件共享方式. 命令:mklink /d "C:\d" "C:\e" 有哪些坑: 1.此命名必须以管理员方式在cmd运行 2.文件必须不存在..通过 ...
- 身份认证系统(三)什么是OAuth2
本文准备用最简单的语言告诉大家什么是OAuth2 ,OAuth2是干什么的. 我们有一个资源服务器,资源服务器中有一系列的用户数据. 现在有一个应用想想要获取我们的用户数据. 那么最简单的方法就是我们 ...
- iOS 获取蜂窝网络信号强度 包含iPhoneX XS XR XSMASX (最新)
1.虽然各种直接获取信号强度的api都被封杀了.但是还有一个另类的黑魔法可以获取到.那就是遍历UIStatusBar了 网络上有的文章写的会崩溃 比如: - (int)getSignalStrengt ...
- HSL与RGB颜色转换
/** * HSL颜色值转换为RGB. * 换算公式改编自 http://en.wikipedia.org/wiki/HSL_color_space. * h, s, 和 l 设定在 [0, 1] 之 ...
- #leetcode刷题之路13-罗马数字转整数
罗马数字包含以下七种字符: I, V, X, L,C,D 和 M.字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ,即为两个并列的 1.12 写 ...
- 【HDOJ 2888】Check Corners(裸二维RMQ)
Problem Description Paul draw a big m*n matrix A last month, whose entries Ai,j are all integer numb ...
- C++ Primer 第8章作业
练习8.1 编写函数,接受一个istream&参数,返回值类型也是istream&. 此函数须从给定流中读取数据,直至遇到文件结束标识时停止.它将读取的数据打印在标准输出上.完成这些操 ...