一、对事务的支持事务:是一组原子操作的工作单元,要么全部成功,要么全部失败Spring管理事务方式:JDBC编程事务管理:--可以控制到代码中的行 可以清楚的控制事务的边界,事务控制粒度化细(编程的方式)JDBC声明事务管理---可以控制到方法 事务相关API不用介入程序之中,将 ...
一、对事务的支持
事务:是一组原子操作的工作单元,要么全部成功,要么全部失败
Spring管理事务方式:
可以清楚的控制事务的边界,事务控制粒度化细(编程的方式)
事务相关API不用介入程序之中,将事务管理与实际业务代码解耦合(配置
二、JDBC编程事务管理
Spring提供两种方式实现编程式的事务管理:
- 实现PlatformTransactionManager接口
- 使用TransactionTemplate模式
2.1、实现PlatformTransactionManager接口
大致步骤:
- 指定PlatformTransactionManager的实现类
- 定义事务TransactionDefinition
- 将事务定义传送给TransactionStatus
- 将欲进行的事务用try..catch语句封起来
- 如果事务出错,调用PlatformTransactionManager的rollback方法
package com.pb.transaction.demo;import javax.sql.DataSource;import org.springframework.context.support.ClassPathimport org.springframework.jdbc.core.JdbcTemplate;import org.springframework.transaction.PlatformTransactionManager;import org.springframework.transaction.TransactionStatus;import org.springframework.transaction.support.DefaultTransactionDefinition;/** * 使用TransactionManager事务管理 * 缺点:侵入代码 * 优点:控制度细粒度 */public class TransactionManagerDemo { public static void main(String[] args) { ClassPath=new ClassPath); //获取platform对象 PlatformTransactionManager ptm=(PlatformTransactionManager) cpx.getBean("transactionManager"); //事务定义器 DefaultTransactionDefinition dtd=new DefaultTransactionDefinition(); //设置事务定义器的行为 dtd.setPropagationBehavior(DefaultTransactionDefinition.PROPAGATION_REQUIRED); //事务状态通过事务管理器创建 TransactionStatus ts=ptm.getTransaction(dtd); //进行事务 try { //获取数据源 DataSource ds=(DataSource) cpx.getBean("dataSource"); //创建JDBCTemplacte JdbcTemplate jt=new JdbcTemplate(ds); //执行更新或者插入等操作 jt.update("insert into person values(11,'TTM',23)"); jt.update("update person set name='张王八' where id=7"); ptm.commit(ts); System.out.println("==========="); } catch (Exception e) { ptm.rollback(ts); System.out.println("撤消======="); e.printStackTrace(); } }}
海外公司注册、海外银行开户、跨境平台代入驻、VAT、EPR等知识和在线办理:https://www.xlkjsw.com
原标题:Spring(九)Spring对事务的支持
关键词:Spring
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。