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;
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。