spring实现jdbctemplate添加事务支持示例
spring实现jdbctemplate添加事务支持示例
发布时间:2016-12-29 来源:查字典编辑
摘要:复制代码代码如下:publicinterfaceJdbcTemplateextendsJdbcOperations{publicabstra...

复制代码 代码如下:

public interface JdbcTemplate extends JdbcOperations {

public abstract void beginTranstaion();

public abstract void commit();

public abstract void rollback();

}

复制代码 代码如下:

public class JdbcTemplateImpl extends org.springframework.jdbc.core.JdbcTemplate implements JdbcTemplate {

private PlatformTransactionManager platformTransactionManager;

private DefaultTransactionDefinition transactionDefinition;

private ThreadLocal<TransactionStatus> transcationStatus = new ThreadLocal<TransactionStatus>();

public void beginTranstaion() {

TransactionStatus tmp = platformTransactionManager.getTransaction(transactionDefinition);

transcationStatus.set(tmp);

}

public void commit() {

TransactionStatus tmp = transcationStatus.get();

if (tmp == null) {

throw new RMSRuntimeException("no transcation");

}

platformTransactionManager.commit(tmp);

transcationStatus.remove();

}

public void rollback() {

TransactionStatus tmp = transcationStatus.get();

if (tmp == null) {

throw new RMSRuntimeException("no transcation");

}

platformTransactionManager.rollback(tmp);

transcationStatus.remove();

}

@Override

public void afterPropertiesSet() {

super.afterPropertiesSet();

transactionDefinition = new DefaultTransactionDefinition();

transactionDefinition.setIsolationLevel(TransactionDefinition.ISOLATION_READ_COMMITTED);

transactionDefinition.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED);

platformTransactionManager = new DataSourceTransactionManager(getDataSource());

}

public PlatformTransactionManager getPlatformTransactionManager() {

return platformTransactionManager;

}

public DefaultTransactionDefinition getTransactionDefinition() {

return transactionDefinition;

}

public ThreadLocal<TransactionStatus> getTranscationStatus() {

return transcationStatus;

}

}

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新JSP教程学习
热门JSP教程学习
编程开发子分类