Example of adding transaction support to JDBC template in spring

Time:2020-10-27

Copy codeThe code is as follows:
public interface JdbcTemplate extends JdbcOperations {
public abstract void beginTranstaion();

public abstract void commit();

public abstract void rollback();
}

Copy codeThe code is as follows:
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;
 }

}

Recommended Today

Blog based on beego, go blog

Go Blog A beego based development, can quickly create personal blog, CMS system Include functions see Official website of go bloggo-blog.cn Demo siteleechan.online Update log time function January 23, 2020 New top post function February 2, 2020 New custom navigation function February 4, 2020 New site announcement function February 6, 2020 New link module February […]