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,一经查实,立即删除!

相关文章

思科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…

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

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

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

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

大数据应用开发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日,国家自然科学基金委员会(以下简称自然科学基金委)交叉科学高端学术论坛在北京召开。第十二届全国政协副主席、中国科协名誉主席、中国科学院院士韩启德,自然科学基金委原主任、中国科学院…

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

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

2017年网易校招题 末尾0的个数

题目描述 输入一个正整数n,求n!(即阶乘)末尾有多少个0? 比如: n 10; n! 3628800,所以答案为2输入描述: 输入为一行,n(1 ≤ n ≤ 1000) 输出描述: 输出一个整数,即题目所求 示例1输入 10 输出 2 思路:要统计末尾0的个数,只需要统…

麻省理工学院的牛人解说数学体系,你到哪个层次了?

来源:数学与人工智能为什么要深入数学的世界我不否认现在广泛流行的Graphical Model是对复杂现象建模的有力工具,但是,我认为它不是panacea,并不能取代对于所研究的问题的深入的钻研。如果统计学习包治百病,那么很多 “…

linux gpio设备驱动程序,嵌入式Linux设备驱动开发之:GPIO驱动程序实例-嵌入式系统-与非网...

11.3 GPIO驱动程序实例11.3.1 GPIO工作原理FS2410开发板的S3C2410处理器具有117个多功能通用I/O(GPIO)端口管脚,包括GPIO 8个端口组,分别为GPA(23个输出端口)、GPB(11个输入/输出端口)、GPC(16个输入/输出端口)、GPD(16个输入/输出端口)、GPE(16个输入…

它将改变一切:AI解决了生物学50年来的重大难题

图片来源:Pixabay来源 公众号“机器之心”CASP14 组织者、年近七旬的 UC Davis 科学家 Andriy Kryshtafovych 在大会上感叹道,I wasnt sure that I would live long enough to see this(我活久见了)[1]。11 月 30 日,…

教你彻底学会动态规划——入门篇

动态规划相信大家都知道,动态规划算法也是新手在刚接触算法设计时很苦恼的问题,有时候觉得难以理解,但是真正理解之后,就会觉得动态规划其实并没有想象中那么难。网上也有很多关于讲解动态规划的文章,大多都是叙述概念…

linux终端密码星星,如何获得您的sudo密码在Ubuntu中显示为星号 | MOS86

我的一个朋友最近从Windows切换到Ubuntu Linux。在新操作系统花了一个星期左右的时间,他提出了一个问题109mh1112虽然这确实导致了这里和那里的一些打字错误,一次输入正确的sudo密码已被证明是非常有挑战性的,主要是因为在输入密码时没有显示…

正则 null_正则表达式exec、match、test的区别

一、定义的不同RegExp.prototype.test()RegExp.prototype.exec()String.prototype.match()从MDN的定义可以看出,test和exec是正则实例的API,match是String的,这一点决定了调用方式的不同。二、应用场景的不同如果只是想要判断正则表达式和字符…

Gartner发布2021年重要战略科技趋势!

来源:Gartner不久前,全球领先的信息技术研究和顾问公司Gartner发布企业机构在2021年需要深挖的重要战略科技趋势。分析师们在举行的Gartner IT Symposium/Xpo大会美洲站虚拟会议上展示了自己的发现。Gartner研究副总裁Brian Burke表示:“各企…

linux at24测试程序,linux 2.6下eeprom at24c08 i2c设备驱动(new style probe方式)

1 修改bsp_以便支持probe1.1 AT24C08地址的确定原理图上将A2、A1、A0都接地了,所以地址是0x50。注意到是7位(bit).1.2 修改bsp采用友善之臂的, 2.6.32.2内核[rootlocalhost mach-s3c2440]# vim/opt/FriendlyARM/mini2440/linux-2.6.32.2/arch/arm/mach-s3c2440/mach…

Java中注释的使用

如何在Java中使用注释 在编写程序时,经常需要添加一些注释,用以描述某段代码的作用。 一般来说,对于一份规范的程序源代码而言,注释应该占到源代码的 1/3 以上。因此,注释是程序源代码的重要组成部分,一定要…

关于动态规划,你想知道的都在这里了!

作者 | Your DevOps Guy翻译| 火火酱~,责编 | 晋兆雨出品 | AI科技大本营头图 | 付费下载于视觉中国什么是动态规划?它又有什么重要的呢?在本文中,我将介绍由Richard Bellman在20世纪50年代提出的动态规划(dynamic pro…

linux修改永久ip地址,centos设置IP地址,永久修改ipv4

# ifconfig #查看下本机的IP地址。eth0Link encap:Ethernet HWaddr 00:50:56:0A:0B:0Cinet addr:192.168.0.3 Bcast:192.168.0.255 Mask:255.255.255.0inet6 addr: fe80::250:56ff:fe0a:b0c/64 Scope:LinkUP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1RX packets:172220…

详细介绍MySQL/MariaDB的锁

官方手册:https://dev.mysql.com/doc/refman/5.7/en/innodb-locking-transaction-model.html 1.事务提交的方式 在MariaDB/MySQL中有3种事务提交的方式。 1.显式开启和提交。 使用begin或者start transaction来显式开启一个事务,显式开启的事务必须使用c…

美国专利商标局发布人工智能专利扩散分析报告

以下文章来源:中科院知识产权信息,2020-11-23报告显示,从2002到2018年,美国人工智能专利的年申请量增长超过100%,从每年3万件增加到6万多件,含人工智能的专利申请所占份额从9%上升到近16%。同时&#xff0c…