分享一下我老师大神的人工智能教程!零基础,通俗易懂!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();回滚,很方便。