Spring对事务管理的支持的发展历程--转
原文地址:http://www.iteye.com/topic/1123049
- Connection conn =
- DataSourceUtils.getConnection();
- //开启事务
- conn.setAutoCommit(false);
- try {
- Object retVal =
- callback.doInConnection(conn);
- conn.commit(); //提交事务
- return retVal;
- }catch (Exception e) {
- conn.rollback();//回滚事务
- throw e;
- }finally {
- conn.close();
- }
- Session session = null;
- Transaction transaction = null;
- try {
- session = factory.openSession();
- //开启事务
- transaction = session.beginTransaction();
- transation.begin();
- session.save(user);
- transaction.commit();//提交事务
- } catch (Exception e) {
- e.printStackTrace();
- transaction.rollback();//回滚事务
- return false;
- }finally{
- session.close();
- }
缺点:不一致的事务管理,复杂
- public interface PlatformTransactionManager {
- TransactionStatus getTransaction(TransactionDefinition definition)
- throws TransactionException;
- void commit(TransactionStatus status) throws TransactionException;
- void rollback(TransactionStatus status) throws TransactionException;
- }
- //1.获取事务管理器
- PlatformTransactionManager txManager = (PlatformTransactionManager)
- ctx.getBean("txManager");
- //2.定义事务属性
- DefaultTransactionDefinition td = new DefaultTransactionDefinition();
- td.setIsolationLevel(TransactionDefinition.ISOLATION_READ_COMMITTED);
- //3开启事务,得到事务状态
- TransactionStatus status = txManager.getTransaction(td);
- try {
- //4.执行数据库操作
- System.out.println(jdbcTempate.queryForInt("select count(*) from tbl_doc"));
- //5、提交事务
- txManager.commit(status);
- }catch (Exception e) {
- //6、回滚事务
- txManager.rollback(status);
- }
- //1.获取事务管理器
- PlatformTransactionManager txManager = (PlatformTransactionManager)
- ctx.getBean("txManager");
- //2、定义事务管理的模板
- TransactionTemplate transactionTemplate = new TransactionTemplate(txManager);
- //3.定义事务属性
- transactionTemplate.
- setIsolationLevel(TransactionDefinition.ISOLATION_READ_COMMITTED);
- //4.回调,执行真正的数据库操作,如果需要返回值需要在回调里返回
- transactionTemplate.execute(new TransactionCallback() {
- @Override
- public Object doInTransaction(TransactionStatus status) {
- //5.执行数据库操作
- System.out.println(jdbcTempate.queryForInt("select count(*) from tbl_doc"));
- return null;
- }
- });
转载于:https://www.cnblogs.com/davidwang456/p/5733068.html
Spring对事务管理的支持的发展历程--转相关推荐
- Spring对事务管理的支持的发展历程(基础篇)
1.问题 Java代码 Connection conn = DataSourceUtils.getConnection(); //开启事务 conn.setAutoCommit(fa ...
- 谈Spring的事务管理
开篇前 Spring发展至今已到v5,本篇旨在探究Spring对于事务管理的方式的发展变化,算是对许久以来使用的总结,同时也希望和想深入Spring事务管理的小伙伴们做一个分享. 开篇 Spri ...
- Spring JDBC-Spring对事务管理的支持
概述 事务管理关键抽象 Spring事务管理的实现类 Spring JDBC 和MybBatis的事务管理器的配置 JPA的事务管理器的配置 Hibernate的事务管理器的配置 JTA 的事务管理器 ...
- Spring的事务管理1
事务的回顾: 事务:逻辑上的一组操作,组成这组事务的各个单元,要么全部成功,要么全部失败 事务的特性:ACID 原子性(Atomicity):事务不可分割 一致性(Consistency):事务执行前 ...
- Spring JDBC-Spring事务管理之数据库事务基础知识
概述 数据库事务的概念 原子性 一致性 隔离性 持久性 数据并发的问题 脏读dirty read 不可重复读unrepeatable read 幻象读 phantom read 幻象读和不可重复度的区 ...
- spring教程--事务管理
Spring的事务管理 1.1 事务: 事务:是逻辑上一组操作,要么全都成功,要么全都失败. 事务特性: ACID: 原子性:事务不可分割 一致性:事务执行的前后,数据完整性保持一致. 隔离性:一个事 ...
- batch spring 重复执行_一个3年老javaer竟然连Spring的事务管理都不知道,惊呆了
1.事务介绍 事务(Transaction),一般是指要做的或所做的事情.在计算机术语中是指访问并可能更新数据库中各种数据项的一个程序执行单元(unit). 这里我们以取钱的例子来讲解:比如你去ATM ...
- spring,mybatis事务管理配置与@Transactional注解使用[转]
spring,mybatis事务管理配置与@Transactional注解使用[转] spring,mybatis事务管理配置与@Transactional注解使用 概述 事务管理对于企业应用来说是至 ...
- 初见Spring之事务管理
初见Spring之事务管理 在很多业务的场景下,需要对数据库进行操作,在对访问数据库的时候,尤其是对数据的内容进行增删改操作时,引入事务就是必要的了.在通常情况下利用Java自带的JDBC操作完成事务 ...
最新文章
- CSS中的emmet语法(使用缩写的方式提高书写html编写速度)
- Oracle 监听器无法启动(TNS-12537,TNS-12560,TNS-00507)
- VMware中CentOS7网卡无法启动故障
- Java 8 CompletableFuture
- 只腐蚀毛刺 腐蚀算法_图像的腐蚀 膨胀及细化
- 使用哈工大LTP做自然语言处理任务基础demo
- 空间mysql数据还原_mysql通过表空间来恢复或者传递数据
- 全球首发!5G折叠屏笔记本电脑ThinkPad X1 Fold震撼上市
- 任务寄存器TR:GDT、LDT、IDT、TR、TSS之间的关系
- 525 Contiguous Array 连续数组
- DeBruijin HDU - 2894(????????)
- 华三服务器监控系统,博世DS7400周界防盗报警系统联动H3C监控系统说明概要
- ThinkPad T430i黑苹果Yosemite 10.10.3成功显卡驱动
- 倒计时1天!MDCC 2016移动开发者大会全日程公布(表)
- 局域网查看工具V1.60.exe与局域网助手(LanHelper)的试用
- Python flask web基础(三)用wangeditor实现富文本编辑
- h0043. 奇怪的汉诺塔
- 2023 IEEE Fellow出炉:唐立新、宗成庆、朱军、姬水旺、李佳等入选
- 二维码如何转为链接,看了这篇文章才知道多好用!
- 在BIOS中修改IMM的方法
热门文章
- java简述对象的组合_Java程序运行和对象创建过程简述
- 纯jsp实现评论功能_基于云开发的小程序版本更新、评论功能改进、后台管理的实现...
- 未发现数据源名称并且未指定默认驱动程序_10个有用的HTML5功能,您可能未使用
- 单链表的基本操作_数据结构-单链表的基本操作
- java rest post list,Java RestTemplate.postForLocation方法代码示例
- 栈、堆、静态存储区和程序的内存布局
- 在linux中运行多文件,在Linux中打开了太多文件(Too many open files)的三种解决方法...
- layui如何集成文件服务器,layui使用upload组件实现文件上传功能
- Oracle使用游标
- 二分图带权最大匹配费用流_一文掌握阻抗匹配