事务模板接入(spring的编程式事务)

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

               

事务模板接入

这里接入的是spring的编程式事务,代理一下spring的TransactionTemplate就可以了。

 

import org.springframework.transaction.TransactionException;

import org.springframework.transaction.support.TransactionCallback;

import org.springframework.transaction.support.TransactionTemplate;

 

/**

 * 事务模板

 *

 * @author jiacheng.yjc

 * @version $Id: TranscationTemplate.java, v 0.1 2015年11月18日 上午11:17:58 jiacheng.yjc Exp $

 */

public class TrancTemplateImpl implements TrancTemplate {

 

    private TransactionTemplate transactionTemplate;

    //这个是为了一个事务不够的时候也不用再new一个,直接用这个就行

    private TransactionTemplate transactionNewTemplate;

 

    /**

     *

     * @see com.mybank.bkloanapply.core.service.component.tx.TrancTemplate#execute(org.springframework.transaction.support.TransactionCallback)

     */

    @Override

    public <T> T execute(TransactionCallback<T> action) throws TransactionException {

        return transactionTemplate.execute(action);

    }

 

    /**

     *

     * @see com.mybank.bkloanapply.core.service.component.tx.TrancTemplate#executeReqNew(org.springframework.transaction.support.TransactionCallback)

     */

    @Override

    public <T> T executeReqNew(TransactionCallback<T> action) throws TransactionException {

        return transactionNewTemplate.execute(action);

    }

 

    /**

     * Setter method for property <tt>transactionTemplate</tt>.

     *

     * @param transactionTemplate value to be assigned to property transactionTemplate

     */

    public void setTransactionTemplate(TransactionTemplate transactionTemplate) {

        this.transactionTemplate = transactionTemplate;

    }

 

    /**

     * Setter method for property <tt>transactionNewTemplate</tt>.

     *

     * @param transactionNewTemplate value to be assigned to property transactionNewTemplate

     */

    public void setTransactionNewTemplate(TransactionTemplate transactionNewTemplate) {

        this.transactionNewTemplate = transactionNewTemplate;

    }

}

 

模板的接入使用

/**

     * 测试用例,插入一条日志记录

     *

     */

    @Override

    public String logTest(LogModel logModel) {

        final LogModel logModel_ = logModel;

        trancTemplate.execute(new TransactionCallback<LogModel>() {

            @Override

            public LogModel doInTransaction(TransactionStatus status) {

                logComponent.insert(logModel_);

                //do otherthings…

                return logModel_;

            }

        });

        return "执行成功";

}

当insert语句执行出错或者do otherthings时出错都会自动回滚,不需要手动trycatch然后status.setRollbackOnly();回滚,很方便。

           

给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow
这里写图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值