注解开启事务、手动开启和回滚事务

注解开启事务

Spring提供了注解开启事务的办法,即在类上或者Public的方法上加@Transactional(rollbackFor = Exception.class)注解即可。

 注意:加了这个注解后使用try-catch去抓取,则该事务就会失效,永远都不会碰到回滚,这里我们可以在catch中去throws一个异常,也可手动回滚TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();

手动开启和回滚事务

首先注入一个Spring的事务管理器

@autowired
private PlatformTransactionManager platformTransactionManager;

public void test(){
    // 手动开启事务  
    DefaultTransactionDefinition defultTransactionDefinition = new DefaultTransactionDefinition();
    defultTransactionDefinition .setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRES_NEW);
    TransactionStatus status = platformTransactionManager.getTransaction(defultTransactionDefinition );
    
    try{
        //操作数据
        ·······
        //提交事务
        platformTransactionManager.commit(status);
    }catch(Exception e){
        //回滚事务
        platformTransactionManager.rollback(status);
        e.printStackTrace();
    }
}

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值