spring(三)-事务管理

1、 Spring事务管理

  事务管理:本质是使用spring管理事务,完成数据库对于事务的支持。

  事务:一系列对数据库操作的集合,一个操作错误,所有都必须回滚,其特点是acid。

(1)事务并发存在问题:

  脏读:事务读取数据无效。事务T1将某一值修改,然后事务T2读取该值,此后T1因为某种原因撤销对该值的修改。

  不可重复读:一个事务范围内两个相同的查询却返回了不同数据。由于查询时系统中其他事务修改的提交而引起的。侧重对同一个数据的修改。

  幻读:多个事务操作统一数据集。同样的条件, 由于事务T2的修改,第 1 次和第 2 次读出来的记录数不一样。侧重对数据集的增加和删除。

  丢失更新:事务T2操作覆盖了事务T1的操作。

(2)spring事务管理方法

  编程式事务管理(编程式事务管理使用TransactionTemplate或者直接使用底层的PlatformTransactionManager),可以做到代码块事务的细粒度。

  声明式事务管理:建立在AOP之上的,其本质是对方法前后进行拦截,然后在目标方法开始之前创建或者加入一个事务,在执行完目标方法之后根据执行情况提交或者回滚事务。就不需要在业务逻辑代码中掺杂事务管理的代码。

  (包括两种方法:基于tx和aop名字空间的xml配置文件/基于@Transactional注解,对dao层注释)

@Transactional (propagation=Propagation.NOT_SUPPORTED) 

public class MyBatisServiceImpl implements MyBatisService {

         @Autowired

         private MyBatisDao dao;

         @Override

         public void insert(Test test) {

                  dao.insert(test); 事物传播行为是PROPAGATION_NOT_SUPPORTED,以非事务方式运行,不会存入数据库

                  //抛出unchecked异常,触发事物,回滚  

                  throw new RuntimeException("test");

         }

(3)事务隔离级别

  若干个并发的事务之间的隔离程度。

                  

(4)事务传播行为

  在开始当前事务之前,一个事务上下文已经存在,此时有若干选项可以指定一个事务性方法的执行。

                  

 

 

 

 

 

 

 

 

转载于:https://www.cnblogs.com/xiongchang95/p/8966683.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/486189.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2017年网易校招题 解救小易

题目描述 有一片1000*1000的草地,小易初始站在(1,1)(最左上角的位置)。小易在每一秒会横向或者纵向移动到相邻的草地上吃草(小易不会走出边界)。大反派超超想去捕捉可爱的小易,他手里有n个陷阱。第i个陷阱被安置在横坐标为xi ,纵坐标为yi 的位…

oracle数据库的拼接字符串,Oracle数据库拼接字符串

Ora-03113\Ora-03114与Oracle In 拼接字符串的问题刚深入接触Oracle不久(大学里以及刚参加工作时学到的Oracle知识只能算是皮毛),因为之前使用SqlServer有将近两年的时间,对SqlServer相对来说很熟悉,比较而言,Oracle真心很 ...oracle 数据库 分割字符串返回结果集函数…

思科nat配置实例_Cisco ASA 5520(8.2.4)配置企业内网案例

思科防火墙ASA5520 外观网络拓扑图如下内网 网段 192.168.2.0/24公网IP地址 118.25.235.100公网IP地址网关:118.25.235.1.1防火墙内网IP:192.168.2.1/24配置步骤:1、基本配置及配置内外网接口conf thostname ASAFW #设置主机名enable secret pass123 #设置特权密码c…

刘伟:什么是智能人机交互?

本文来自刘伟科学网博客北京邮电大学 刘伟这是一个非常有趣的问题,既涉及智能又牵扯人机交互,更重要的是两者之间的联系。如果把人机交互看成脖子以下,即生理与物理之间的相互作用(如视域、听域、可达域、舒适域)的话&…

下学期第三次作业——SQA计划和验收测试规程设计

一、SQA计划 1.目的 在做云医院这个项目中,严格遵循SQA的计划,确保软件的质量的到保证 2.范围 随着项目的进行,不断的去改变计划,在项目开发的整个生命周期内。 3.人员分工 姓名角色开始时间预计工作量(天)…

ipython版本_使用pyenv切换版本后ipython无法使用解决方法

请务必认真阅读和理解本《免责声明及用户隐私协议》(以下简称《协议》)中规定的所有权利和限制。除非您接受本《协议》条款,否则您无权下载、安装或使用本”软件”、“文章”及其相关免费服务。您一旦阅读、使用、复制、下载、访问或以其它方式使用本站任意文章作品…

警方建立了一个人工智能来预测暴力犯罪,它有严重缺陷

来源:机器学习研究组订阅号在英国,有一个被称为“最严重暴力”(简称MSV,即Most Serious Violence)的预测系统,这个预测系统归属于国家数据分析解决方案(NDAS)项目。过去两年&#xf…

2017年网易校招题 输入一个数将其变为斐波那契数(最小步数)

题目描述 Fibonacci数列是这样定义的:F[0] 0F[1] 1for each i ≥ 2: F[i] F[i-1] F[i-2]因此,Fibonacci数列就形如:0, 1, 1, 2, 3, 5, 8, 13, ...,在Fibonacci数列中的数我们称为Fibonacci数。给你一个N,你想让其变…

linux 开发板传文件,Linux下用USB传输文件到开发板

记录一下解决EZ6410的板子在Linux下用USB来传输文件问题的过程~前两天ARM11的开发板到了,需要先验证一下各项功能。以往用FS2410时用的是minicomusb2ram,功能比windows下的dnw更强,因为minicom支持彩色显示,不会像dnw一样出现很多…

SQA1

客观地验证软件项目产品和工作是否遵循恰当的标准、步骤和需求。2.将软件质量保证工作及结果通知给相关组别和个人。 转载于:https://www.cnblogs.com/xyxa/p/8969778.html

matlab设置图片背景透明_MATLAB设置图片背景透明,和设定大小,适合论文中使用...

function CreateFigureOneColumn% 设置合适在Word中未分栏时插入图片的格式% 该函数在Figure图被绘制后使用,绘制Figure图时不要改变线的宽度和标签字体% 的大小。该函数会统一设置现款为2,字体大小为8.% 在调用函数之后,需要调用绘图…

大数据应用开发1——配置基础环境

一、基础环境配置 1.配置虚拟网络 1.1、点击1、编辑2和3, 1.2、点开4,编辑网关 2、配置虚拟机环境 1.1、安装一台虚拟机,使用root用户登录,打开终端 1.2修改主机名 终端输入: vim /etc/hostname使用vim编辑/etc/ho…

交叉科学部如何建?基金委:要做好这4点

来源:科学网微信公号 11月29日,国家自然科学基金委员会(以下简称自然科学基金委)交叉科学高端学术论坛在北京召开。第十二届全国政协副主席、中国科协名誉主席、中国科学院院士韩启德,自然科学基金委原主任、中国科学院…

linux 进程的缓存区,Linux-标准I/O缓冲区位于进程中那个位置,堆区?栈区?还是其他位置?...

为了缓冲区大小的更灵活的动态增长,应该是分配在堆里。在微软技术库里,找到一篇文章。**The function printf() takes up 512 bytes from the default heap in 16-bit applications and 4096 bytes in 32-bit applications.The standard I/O buffer gets…

使用memocache

直接cmd下运行 pip3 install python-memcached serializer.py 里的特别应用 如果一个表模型一些字段用到了跨表。可以这样取值 跨表字段 coach_nickname serializers.CharField(sourcecoachinfo.nickname) 可以获取多个选项的字段:sort serializers.CharField(sou…

2017年网易校招题 买苹果

题目描述 小易去附近的商店买苹果,奸诈的商贩使用了捆绑交易,只提供6个每袋和8个每袋的包装(包装不可拆分)。 可是小易现在只想购买恰好n个苹果,小易想购买尽量少的袋数方便携带。如果不能购买恰好n个苹果,小易将不会购买。输入描…

loadrunner发送json_Loadrunner接口测试-发送JSON格式的请求

昨天接到了一个测试接口的任务,接口的请求参数和返回结果均是JSON字符串,先是使用了函数web_submit_date,执行时报错,查询资料没找到原因,不知道是不是该函数不支持JSON串,有兴趣的可以自己试下。然后尝试用…

智能三定律(1),提出智能三条定律的背景和原因

前言:智能是重要的智能科学基础概念,如何解读它也一直存在争议,2005年以来,通过对互联网进化规律、标准智能模型与AI智商评测的研究,我们获得了关于智能的新启发与新思考,2020年5月,智能定律初探…

2017年网易校招题 数字翻转

题目描述 对于一个整数X,定义操作rev(X)为将X按数位翻转过来,并且去除掉前导0。例如:如果 X 123,则rev(X) 321;如果 X 100,则rev(X) 1.现在给出整数x和y,要求rev(rev(x) rev(y))为多少?输入描述: 输入为一行&…

linux非权限安装bioperl,Bioperl的简单安装

按照Bioperl上介绍的方法在linux下安装Bioperl老是安不上,或者是安装上了,但不能用,上面介绍的几种方法都试了,全不行,后面自己想了个办法,就是利用cpan只对要用到的模块进行单独安装,简单适应&…