spring实现jdbctemplate添加事务支持示例
来源:
中文源码网 浏览:290 次 日期:2024-05-16 13:47:41
【下载文档: spring实现jdbctemplate添加事务支持示例.txt 】
spring实现jdbctemplate添加事务支持示例
复制代码 代码如下: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
transcationStatus = new ThreadLocal();
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 getTranscationStatus() { return transcationStatus; }
}