事务就是对一系列的数据库操作进行统一的提交或回滚操作,比如说做一个转账功能,要更改帐户两边的数据,这时候就必须要用事务才能算是严谨的做法。要么成功,要么失败,保持数据一致性。如果中间有一个操作出现异常,那么回滚之前的所有操作。
这样有什么好处呢。
这样可以防止在一些意外(例如说突然断电)的情况下出现乱数据,防止数据库数据出现问题。这边加了钱,那边却还是一样的数,这就完了。要是开放一个网上交易的平台,这样就会出大问题的!
还有其他的一些操作,像是要添加多条数据,如果程序要求必须全部正确才能插入的话,事务又起大作用了,等等。。。开发中为了避免这种情况一般都会进行事务管理。

在JDBC中是通过Connection对象进行事务管理的,默认是自动提交事务,可以手工将自动提交关闭,通过commit方法进行提交,rollback方法进行回滚,如果不提交,则数据不会真正的插入到数据库中。

Hibernate中是通过Transaction进行事务管理,处理方法与JDBC中类似。

Spring中也有自己的事务管理机制,使用TransactionMananger进行管理,可以通过Spring的注入来完成此功能。

系统设计方面要求手动控制事务

1、
applicationContext.xml:

<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager"
p:dataSource-ref="dataSource"/>

2、

在需要加事务的方法上加上

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相关推荐

  1. Spring事务管理 与 SpringAOP

    1,Spring事务的核心接口 Spring事务管理的实现有许多细节,如果对整个接口框架有个大体了解会非常有利于我们理解事务,下面通过讲解Spring的事务接口来了解Spring实现事务的具体策略.  ...

  2. SPRING 事务管理说明

    spring 事务管理是通过AOP拦截指定的方法,进行事务管理. 事务配置 <aop:config proxy-target-class="true"><aop: ...

  3. Spring 事务管理高级应用难点剖析

    Spring 事务管理高级应用难点剖析: 第 1 部分 http://www.ibm.com/developerworks/cn/java/j-lo-spring-ts1/index.html htt ...

  4. spring事务管理 TransactionProxyFactoryBean源码分析

    J2EE,当然离不开事务,事务又当然少不了Spring声明式事务.spring声明式事务,很多码农门,应该和笔者一样,停留在使用上,及仅仅了解点原理.如:Spring事务管理原理"代理+AO ...

  5. Spring 事务管理高级应用难点剖析--转

    第 1 部分 http://www.ibm.com/search/csass/search/?q=%E4%BA%8B%E5%8A%A1&sn=dw&lang=zh&cc=CN& ...

  6. Spring事务管理(详解+实例)

    写这篇博客之前我首先读了<Spring in action>,之后在网上看了一些关于Spring事务管理的文章,感觉都没有讲全,这里就将书上的和网上关于事务的知识总结一下,参考的文章如下: ...

  7. 多数据源 事务管理_可能是最漂亮的Spring事务管理详解

    事务概念回顾 什么是事务? 事务是逻辑上的一组操作,要么都执行,要么都不执行. 事物的特性(ACID): 原子性: 事务是最小的执行单位,不允许分割.事务的原子性确保动作要么全部完成,要么完全不起作用 ...

  8. spring入门到放弃——spring事务管理

    Spring事务提供了两种管理的的方式:编程式事务和声明式事务 简单回顾下事务: 事务:逻辑上的一组操作,组成操作的各个单元,要么全部成功,要么全部失败. 事务特性: 原子性:一个事务包含的各个操作单 ...

  9. Spring jdbc Template和Spring 事务管理

    使用jdbcTemplate完成增删改查操作(重点) package com.it.jdbctemplate;import java.util.List;import org.junit.Test; ...

最新文章

  1. 正则表达式学习神器!
  2. 深入理解javascript原型和闭包(15)——闭包
  3. List类系列(二):List类的list()方法
  4. android https bks,如何将.cer转换为BKS
  5. iOS 5.1.1 设备不能安装AdHoc问题版本号
  6. 【lucene】Lucene Tika 操作各种文件
  7. bat获取命令返回值_全网都在找的redis字符串命令,总结在这了
  8. oracle 11g sga max,oracle 10g 11g中的SGA_MAX_SIZE与SGA_TARGET参数
  9. (C语言)猴子选大王
  10. 断代、新生、创未来-Zoomla!逐浪CMS2 x3.9.6全面发布...
  11. 文件系统挂载、卸载及相关的工具 ⑨
  12. R2017b-Matlab安装教程
  13. 如何用python入侵_外星人入侵(使用python编写)
  14. 卖零食靠什么产品引流?零食店怎么做引流?
  15. python虚拟变量回归_哑变量 虚拟变量 线性回归_spss 线性回归 哑变量
  16. DAVINCI DM365-DM368开发攻略—U-boot-2010.12-rc2-psp03.01.01.39及UBL的移植
  17. MySQL-HA高可用
  18. 魔戒:咕噜发售日确定 将于9月1日发布
  19. maven-pom文件dependence标签
  20. [分享] - (开源)PHP高级境界-网络操作系统(eyeOS)

热门文章

  1. bashrc文件中环境变量配置错误,导致linux命令无法正常使用的解决方案
  2. 【机器视觉】 dev_set_contour_style算子
  3. 【嵌入式】C语言高级编程-内建函数(11)
  4. 【STM32】 Keil介绍、下载、安装与注册
  5. 【C++】 C++标准模板库(一) Vector
  6. php 3des 兼容java,PHP版3DES加解密类,可与java的3DES(DESede)加密方式兼容
  7. 无法对 null 引用执行运行时绑定_你真的懂this吗?聊聊默认绑定,隐式绑定,显示绑定,new绑定...
  8. python 类属性排序_Python实现多属性排序的方法
  9. illustrator条形码_Barcode Producer for Mac(创建条形码软件)
  10. springBoot Maven改成war包