JAVA学习之spring事物控制

spring中配置事物先:

<! -- 配置事物管理器 -- >
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource" /> <! -- 加载数据源 -- >
</bean>
<! -- 配置事物模板,可以理解为对象 -- >
<bean id="transactionTemplate" class="org.springframework.transaction.support.TransactionTemplate">
        <property name="transactionManager" ref="transactionManager" /> <! -- 加载事物管理器 -- >
</bean>

注入事物模板对象:

/**
* 事务模版对象
*/
@Autowired
protected TransactionTemplate transactionTemplate;

使用实例:

this.getTransactionTemplate().execute(new TransactionCallback<Object>() { // 启动事物
        @Override
        public TradeOrderIssuedResponse doInTransaction(TransactionStatus status) { // 事物原子方法,此方法中的所有代码为一个事物,统一控制处理
                // 事物回滚方法
                status.setRollbackOnly();
        }
});

基于注解的事物管理:

<!-- spring中开启注解事物管理的支持 声明式事务管理 配置事物的注解方式注入--> <tx:annotation-driven transaction-manager="transactionManager"/>

使用实例:
@Transactional(rollbackFor=Exception.class) 
public void insert(String sql, boolean flag) throws Exception {
    dao.insertSql(sql); 
    // 如果flag 为 true ,抛出异常 
    if (flag){ 
        throw new Exception("has exception!!!");
    }
}

注意:rollbackFor属性指定出现Exception异常的时候回滚,遇到检查性的异常需要回滚,默认情况下非检查性异常,包括error也会自动回滚。 异常被捕获不会回滚

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值