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)事务传播行为
在开始当前事务之前,一个事务上下文已经存在,此时有若干选项可以指定一个事务性方法的执行。


spring(三)-事务管理的更多相关文章
- Spring的事务管理
事务 事务:是逻辑上一组操作,要么全都成功,要么全都失败. 事务特性(ACID) 原子性:事务不可分割 一致性:事务执行的前后,数据完整性保持一致 隔离性:一个事务执行的时候,不应该受到其他事务的打扰 ...
- spring笔记--事务管理之声明式事务
事务简介: 事务管理是企业级应用开发中必不可少的技术,主要用来确保数据的完整性和一致性, 事务:就是一系列动作,它们被当作一个独立的工作单元,这些动作要么全部完成,要么全部不起作用. Spring中使 ...
- Spring应用——事务管理
事务基础:请参看:http://www.cnblogs.com/solverpeng/p/5720306.html 一.Spring 事务管理 1.前提:事务管理器 在使用 Spring 声明式事务管 ...
- Spring高级事务管理难点剖析
1Spring事务传播行为 所谓事务传播行为就是多个事务方法相互调用时,事务如何在这些方法间传播.Spring支持7种事务传播行为 PROPAGATION_REQUIRED(加入已有事务) 如果当前没 ...
- Spring之事务管理
事务管理对于企业应用至关重要.它保证了用户的每一次操作都是可靠的,即便出现了异常的访问情况,也不至于破坏后台数据的完整性. 就像银行的自助取款机,通常都能正常为客户服务,但是也难免遇到 ...
- Mybatis整合Spring实现事务管理的源码分析
一:前言 没有完整看完,但是看到了一些关键的地方,这里做个记录,过程会有点乱,以后逐渐补充最终归档为完整流程:相信看过框架源码的都知道过程中无法完全确定是怎样的流程,毕竟不可能全部都去测试一遍 ,但是 ...
- 3.1.4 Spring的事务管理
四.Spring的事务管理 事务原本是数据库中的概念, 在Dao层. 但一般情况下, 需要将事务提升到 业务层, 即Service层. 这样做是为了 能够使用事务的特性来管理具体的业务. 1. Spr ...
- Spring学习笔记五:Spring进行事务管理
转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6776256.html 事务管理主要负责对持久化方法进行统一的提交或回滚,Spring进行事务管理即我们无需在 ...
- 【spring源码学习】spring的事务管理的源码解析
[一]spring事务管理(1)spring的事务管理,是基于aop动态代理实现的.对目标对象生成代理对象,加入事务管理的核心拦截器==>org.springframework.transact ...
随机推荐
- js 常用事件句柄总结
HTML 4.0 的新特性之一是有能力使 HTML 事件触发浏览器中的动作(action),比如当用户点击某个 HTML 元素时启动一段 JavaScript.下面是一个属性列表,这些属性可插入 HT ...
- Java Web SpringMVC AJAX,实现页面懒加载数据
因为做的微信端的网页,所以在显示后台数据的时候,要么分页,要么全部加载数据,开始分页对于用户来说,其实体验不是很好,毕竟要去不断的点击下一页,但是如果我把全部数据读取出来的话,但用户可能也就看前面几条 ...
- 【Shell】运行shell出现-ash: ./test.sh: not found
1.这是一个读取文件的脚本 #!/bin/bash for line in `cat pidtestconf` do echo $line done 因为命名的时候这边使用的是 test.sh 这边将 ...
- 【U1结业机试题】新闻内容管理系统:解析XML文件读取Html模版生成网页文件
一.作业要求: 1.在xml文件中创建新闻节点news,包含标题.作者.日期.正文等信息 2.创建HTML模板文件 3.读取xml中所有新闻信息,并使用新闻信息替换模板文件中占位符,从而为每一条新闻生 ...
- Libxml2 学习
Libxml2 学习 1.概要 libxml 是一个实现操作XML数据功能的开源C语言库. API参考文档 http://xmlsoft.org/html/libxml-tree.html 2.wi ...
- 当Activity出现Exception时是如何处理的?
1.ActivityThread 2.PerformStop 在这里会调用mWindow.closeAllPanels(),从而关闭OptionMenu, ContextMenu.如果自己通过Wind ...
- scss-比较运算符
与JavaScript类似,scss中也有比较运算符,下面就分别做一下介绍. 一.==相等和!=不相等运算符: 此运算符用来判断两个操作数是否相等. 特别说明: 上面两个运算符,支持类似于JavaSc ...
- C++中 结构体和类的异同
在C++中,结构体是一种特殊形态的类. 结构体和类的唯一区别就是: 结构体和类具有不同的默认访问控制属性. 类中,对于未指定访问控制属性的成员,其访问控制属性为私有类型(private) 结构体中, ...
- wx.grid 简单例子
import wx, wx.grid class GridData(wx.grid.PyGridTableBase): _cols = "a b c".split() _data ...
- Siebel界面的搭建
Siebel界面的初步搭建都是基于Siebel Tools工具来创建的,其搭建步骤: 1. 首先先创建一个Project项目,点击project--->点 new Record--->输入 ...