学习Spring事务处理-非常好的文章列表

本文深入解析了Spring框架中两种主要的事务管理方式:编程式事务管理和声明式事务管理,并通过具体示例阐述了如何使用PlatformTransactionManager接口进行编程式事务管理及如何利用TransactionTemplate进行模版事务管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、 详解Java的Spring框架中的事务管理方式

简述:用了一个非常详细的例子讲解:Spring的编程性事务处理、声明性事务处理,只讲两个例子,不用把所有的场景列出来,作为初学者,我感觉最好的一篇。


2开涛总结Spring事务处理的方式

在Spring基于aop的声明性事务处理产生前,基于JTA的事务管理将事务管理与数据处理的逻辑混在一起,代码高度耦合;而基于EJB的CMT声明性事务管理,强制要求引入EJB容器的支持,也有很大的限制;Spring提供的就很不错。

编程式事务管理:基于PlatformTransactionManager接口

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);  
}  


模版的事务管理:基于PlatformTransactionManager、TransactionTemplate、TransactionCallback

//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;  
    }  
});  

基于aop的声明性事务处理


3、讲解ThreadLocal非常好的文章

彻底理解ThreadLocal

解密ThreadLocal

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值