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;
}
}
您可能感兴趣的文章:
如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!
网友评论