事务管理接口,负责事务的创建,提交,回滚,三个操作

 //创建事务,返回该事务的状态TransactionStatus getTransaction(@Nullable TransactionDefinition definition) throws TransactionException;//提交事务,具体提交哪个事务,由参数status决定void commit(TransactionStatus status) throws TransactionException;//事务回滚,滚到哪里,由参数status决定,也可以理解由//TransactionStatus中的savepoint属性决定void rollback(TransactionStatus status) throws TransactionException;

PlatformTransactionManager接口最重要的实现类是DataSourceTransactionManager,下面的事例使用该实现类演示事务的提交

示例1:手动提交事务,这个例子依赖于spring容器

@Autowired
DataSourceTransactionManager txpublic void aa(){DefaultTransactionDefinition def=new DefaultTransactionDefinition();//这个地方可以根据自己需要选择传播行为和隔离级别def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRES_NEW);TransactionStatus status=tx.getTransaction(def);try{自己的各种业务操作tx.commit();//然后这里提交}catch(Exception e){tx.rollback(status);//报错这里回滚}
}

示例2:要想理解spring,就不应该依赖spring容器,同样是个手动提交事务,下面这个例子不再依赖spring容器

public static void main(String[] args) throws SQLException {HikariDataSource ds = new HikariDataSource();ds.setJdbcUrl("jdbc:mysql://localhost:3306/swttest?serverTimezone=UTC&&useSSL=false");ds.setUsername("root");ds.setPassword("123456");PlatformTransactionManager manager = new DataSourceTransactionManager(ds);DefaultTransactionAttribute td = new DefaultTransactionAttribute();TransactionStatus status = manager.getTransaction(td);Map<Object, Object> resourceMap = TransactionSynchronizationManager.getResourceMap();ConnectionHolder connectionHolder = (ConnectionHolder) resourceMap.get(ds);Connection conn = connectionHolder.getConnection();conn.prepareStatement("insert into t1(value) values ('二抱三抱是真抗冻')").execute();manager.commit(status);// manager.rollback(status);
}

Spring-tx-PlatformTransactionManager(DataSourceTransactionManager)相关推荐

  1. 聊聊spring tx的EnableTransactionManagement

    序 本文主要研究一下spring tx的EnableTransactionManagement EnableTransactionManagement spring-tx-5.1.6.RELEASE- ...

  2. spring tx:advice 和 aop:config 配置事务

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/u010741376/article/details/46584463 spring tx:advic ...

  3. Spring学习-Spring Tx

    一.概述 Spring Tx 全称为 Spring Transaction Management(Spring 事务管理),是 Spring 为 DB 事务管理提供过的一种便捷的接入方式. 二.导入依 ...

  4. Spring TX源码分析

    一.先思考一下 什么是事务? 事务是一系列数据库操作的集合,在一个事务里,所有有关的数据库操作一起提交或一起回滚 事务用在什么地方? 如果多个数据库操作需要一起生效或一起失效,那么这些操作需要放在一个 ...

  5. spring tx:advice事务配置

    http://www.cnblogs.com/rushoooooo/archive/2011/08/28/2155960.html 链接归纳的很详细 首先在/WEB-INF/applicationCo ...

  6. spring tx:advice 和 aop:config 配置事务 1

    <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...

  7. Spring Tx (一) (事务)

    文章目录 1.事务的定义 2.事务特性 3.事务的属性 3.1 隔离级别 3.2 传播机制 1.事务的定义 应用层: Spring-Mybatis 驱动层: JDBC事务单数据库事务, JTA事务分布 ...

  8. Spring tx:advice/

    <tx:advice/> 有关的设置 这一节里将描述通过 <tx:advice/> 标签来指定不同的事务性设置.默认的 <tx:advice/> 设置如下: 事务传 ...

  9. spring tx:advice(转)

    默认的 <tx:advice/> 设置如下: 事务传播设置是 REQUIRED 隔离级别是 DEFAULT 事务是 读/写 事务超时默认是依赖于事务系统的,或者事务超时没有被支持. 任何 ...

  10. Spring事务剖析-DataSourceTransactionManager

    1.4 DataSourceTransactionManager 该类基于DataSource实现TransactionManager,也使用的比较多 1.4.1 doGetTransaction 获 ...

最新文章

  1. 北大教授:学术会议与学术研讨渐行渐远,已沦为学术表演~
  2. 网易微专业之《前端开发工程师》学习笔记(1)
  3. 华为p8升级android8系统资源,华为鸿蒙系统已陆续推送! 安卓系统可无缝升级: 升级包容量高达6GB...
  4. 阿里技术|Java 的这些坑,你踩到了吗?
  5. Signal处理中的函数可重入问题
  6. java连接oracle数据库jdbc
  7. 洛谷P2178 品酒大会【后缀数组】【单调栈】
  8. 理解 Delphi 的类(十一) - 深入类中的方法[12] - 消息方法
  9. 【NKOJ-4234】三角分形
  10. base64编码计算机网络,【MIME协议】base64编码与quoted-printable编码
  11. 虚拟吉他手合集 UJAM Instruments Virtual Guitarist Bundle WiN-MAC
  12. Ubuntu14.10 更新源
  13. 【软件工程】------软件开发
  14. git commit -m XX报错 pre -commit hook failed (add --no-verify to bypass)问题
  15. 贾跃亭旗下FF去年第三季净亏3亿美元 暂时避免退市危机
  16. 去除WPS推广程序和广告
  17. 高效上网教程---如何录制高质量的微课
  18. HTML期末大作业 ~ 马尔代夫旅游网页设计作业成品 ~ HTML+CSS+JS网页设计期末课程大作业 ~ web前端开发技术 ~ web课程设计网页规划与设计...
  19. CPU设计实战 第5章 实践任务
  20. Django项目实战——14—(列表页热销排行、商品搜索、Haystack建立数据索引、渲染商品搜索结果、商品详情页)

热门文章

  1. 计算机应用基础选择题综合十,计算机应用基础选择题综合复习练习题
  2. docker php安装gd扩展_Linux安装redis及安装php-redis扩展
  3. 微软软件推送服务器,微软将通过系统更新功能向大部分用户推送新版Microsoft Edge浏览器-...
  4. 面试被问到会不会移动端_问题解答 | 盘点教师资格证面试时一般会问到的问题...
  5. MySQL5.7--项目数据库不同出现的问题
  6. AMQP Connection 127.0.0.1:5672] ERROR [o.s.a.rabbit.connection.CachingConnectionFactory] CachingConn
  7. Android开发笔记(一百四十)Word文件的读取与显示
  8. Android开发笔记(一百零一)滑出式菜单
  9. mysql row 格式binlog 恢复_为什么要把MySQL的binlog格式修改为row
  10. python 常用字符串 列表元祖字典都 自带的函数方法