Spring事务管理TransactionManager
事务就是对一系列的数据库操作进行统一的提交或回滚操作,比如说做一个转账功能,要更改帐户两边的数据,这时候就必须要用事务才能算是严谨的做法。要么成功,要么失败,保持数据一致性。如果中间有一个操作出现异常,那么回滚之前的所有操作。
这样有什么好处呢。
这样可以防止在一些意外(例如说突然断电)的情况下出现乱数据,防止数据库数据出现问题。这边加了钱,那边却还是一样的数,这就完了。要是开放一个网上交易的平台,这样就会出大问题的!
还有其他的一些操作,像是要添加多条数据,如果程序要求必须全部正确才能插入的话,事务又起大作用了,等等。。。开发中为了避免这种情况一般都会进行事务管理。
在JDBC中是通过Connection对象进行事务管理的,默认是自动提交事务,可以手工将自动提交关闭,通过commit方法进行提交,rollback方法进行回滚,如果不提交,则数据不会真正的插入到数据库中。
Hibernate中是通过Transaction进行事务管理,处理方法与JDBC中类似。
Spring中也有自己的事务管理机制,使用TransactionMananger进行管理,可以通过Spring的注入来完成此功能。
系统设计方面要求手动控制事务
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager"
p:dataSource-ref="dataSource"/>
在需要加事务的方法上加上
DataSourceTransactionManager transactionManager = (DataSourceTransactionManager) ctx
.getBean("transactionManager");
DefaultTransactionDefinition def = new DefaultTransactionDefinition();
def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRES_NEW); // 事物隔离级别,开启新事务
TransactionStatus status = transactionManager.getTransaction(def); // 获得事务状态
try {
//逻辑代码
transactionManager.commit(status);
} catch (Exception e) {
transactionManager.rollback(status);
}
引自:http://cailangwei.blog.163.com/blog/static/1314585792014895755400/
https://zhidao.baidu.com/question/197227102.html
转载于:https://www.cnblogs.com/WAbby/p/6118570.html
Spring事务管理TransactionManager相关推荐
- Spring事务管理 与 SpringAOP
1,Spring事务的核心接口 Spring事务管理的实现有许多细节,如果对整个接口框架有个大体了解会非常有利于我们理解事务,下面通过讲解Spring的事务接口来了解Spring实现事务的具体策略. ...
- SPRING 事务管理说明
spring 事务管理是通过AOP拦截指定的方法,进行事务管理. 事务配置 <aop:config proxy-target-class="true"><aop: ...
- Spring 事务管理高级应用难点剖析
Spring 事务管理高级应用难点剖析: 第 1 部分 http://www.ibm.com/developerworks/cn/java/j-lo-spring-ts1/index.html htt ...
- spring事务管理 TransactionProxyFactoryBean源码分析
J2EE,当然离不开事务,事务又当然少不了Spring声明式事务.spring声明式事务,很多码农门,应该和笔者一样,停留在使用上,及仅仅了解点原理.如:Spring事务管理原理"代理+AO ...
- Spring 事务管理高级应用难点剖析--转
第 1 部分 http://www.ibm.com/search/csass/search/?q=%E4%BA%8B%E5%8A%A1&sn=dw&lang=zh&cc=CN& ...
- Spring事务管理(详解+实例)
写这篇博客之前我首先读了<Spring in action>,之后在网上看了一些关于Spring事务管理的文章,感觉都没有讲全,这里就将书上的和网上关于事务的知识总结一下,参考的文章如下: ...
- 多数据源 事务管理_可能是最漂亮的Spring事务管理详解
事务概念回顾 什么是事务? 事务是逻辑上的一组操作,要么都执行,要么都不执行. 事物的特性(ACID): 原子性: 事务是最小的执行单位,不允许分割.事务的原子性确保动作要么全部完成,要么完全不起作用 ...
- spring入门到放弃——spring事务管理
Spring事务提供了两种管理的的方式:编程式事务和声明式事务 简单回顾下事务: 事务:逻辑上的一组操作,组成操作的各个单元,要么全部成功,要么全部失败. 事务特性: 原子性:一个事务包含的各个操作单 ...
- Spring jdbc Template和Spring 事务管理
使用jdbcTemplate完成增删改查操作(重点) package com.it.jdbctemplate;import java.util.List;import org.junit.Test; ...
最新文章
- 正则表达式学习神器!
- 深入理解javascript原型和闭包(15)——闭包
- List类系列(二):List类的list()方法
- android https bks,如何将.cer转换为BKS
- iOS 5.1.1 设备不能安装AdHoc问题版本号
- 【lucene】Lucene Tika 操作各种文件
- bat获取命令返回值_全网都在找的redis字符串命令,总结在这了
- oracle 11g sga max,oracle 10g 11g中的SGA_MAX_SIZE与SGA_TARGET参数
- (C语言)猴子选大王
- 断代、新生、创未来-Zoomla!逐浪CMS2 x3.9.6全面发布...
- 文件系统挂载、卸载及相关的工具 ⑨
- R2017b-Matlab安装教程
- 如何用python入侵_外星人入侵(使用python编写)
- 卖零食靠什么产品引流?零食店怎么做引流?
- python虚拟变量回归_哑变量 虚拟变量 线性回归_spss 线性回归 哑变量
- DAVINCI DM365-DM368开发攻略—U-boot-2010.12-rc2-psp03.01.01.39及UBL的移植
- MySQL-HA高可用
- 魔戒:咕噜发售日确定 将于9月1日发布
- maven-pom文件dependence标签
- [分享] - (开源)PHP高级境界-网络操作系统(eyeOS)
热门文章
- bashrc文件中环境变量配置错误,导致linux命令无法正常使用的解决方案
- 【机器视觉】 dev_set_contour_style算子
- 【嵌入式】C语言高级编程-内建函数(11)
- 【STM32】 Keil介绍、下载、安装与注册
- 【C++】 C++标准模板库(一) Vector
- php 3des 兼容java,PHP版3DES加解密类,可与java的3DES(DESede)加密方式兼容
- 无法对 null 引用执行运行时绑定_你真的懂this吗?聊聊默认绑定,隐式绑定,显示绑定,new绑定...
- python 类属性排序_Python实现多属性排序的方法
- illustrator条形码_Barcode Producer for Mac(创建条形码软件)
- springBoot Maven改成war包