oracle.jdbc.driver.OracleDriver
每一部分要想清楚,一部分一部分测试。要想清楚每一小步是在干什么?这里要细致!
jdbc:oracle:thin:@localhost:1521:ora
// 面向切面编程,我用一个代理类去代理这个实际的类,然后在用另一个类的属性(类属性==类对象)去实现被代理的类而且要加上额外的Props给这个被代理的类的方法加上事务,或者日志(这些东西并不影响方法的实现,但会约束方法是一个整体!)
“一个”事务里包含很多事必须同时完成,才叫一个事务;
package biz;
import dao.ZhuanDAO;
import org.springframework.transaction.PlatformTransactionManager;
import org.springframework.transaction.TransactionDefinition;
import org.springframework.transaction.TransactionStatus;
import org.springframework.transaction.support.DefaultTransactionDefinition;
public class Zhuan implements ZhuanZhang {
PlatformTransactionManager ptm;
TransactionDefinition td;
TransactionStatus ts;
ZhuanDAO dao;
public ZhuanDAO getDao() {
return dao;
}
public void setDao(ZhuanDAO dao) {
this.dao = dao;
}
public void tranMoney(int a, int b, int money) {
DefaultTransactionDefinition dt = new DefaultTransactionDefinition();
dt.setPropagationBehavior(td.PROPAGATION_REQUIRED);
dt.setIsolationLevel(td.ISOLATION_READ_COMMITTED);
ts = ptm.getTransaction(td);
// 面向切面编程,我用一个代理类去代理这个实际的类,然后在用另一个类的属性(类属性==类对象)去实现被代理的类而且要加上额外的Props给这个被代理的类的方法加上事务,或者日志(这些东西并不影响方法的实现,但会约束方法是一个整体!)
try {
dao.addmoney(a, money);
dao.losemoney(b, money);
ptm.commit(ts);
} catch (Exception e) {
ptm.rollback(ts);
e.getStackTrace();// “一个”事务里包含很多事必须同时完成,才叫一个事务;
}
}
}
<bean id="" class="代理类Proxy">
<property name="transcitionManager">
<ref bean="transcitionManager" />
</property>
<property name="service">
<ref bean="dao.service"/>
</property>
<property name="" >
<props>
<prop key="*">传播方式</prop>
</props>
</property>
</bean>
每一部分要想清楚,一部分一部分测试。要想清楚每一小步是在干什么?这里要细致!
jdbc:oracle:thin:@localhost:1521:ora
// 面向切面编程,我用一个代理类去代理这个实际的类,然后在用另一个类的属性(类属性==类对象)去实现被代理的类而且要加上额外的Props给这个被代理的类的方法加上事务,或者日志(这些东西并不影响方法的实现,但会约束方法是一个整体!)
“一个”事务里包含很多事必须同时完成,才叫一个事务;
package biz;
import dao.ZhuanDAO;
import org.springframework.transaction.PlatformTransactionManager;
import org.springframework.transaction.TransactionDefinition;
import org.springframework.transaction.TransactionStatus;
import org.springframework.transaction.support.DefaultTransactionDefinition;
public class Zhuan implements ZhuanZhang {
PlatformTransactionManager ptm;
TransactionDefinition td;
TransactionStatus ts;
ZhuanDAO dao;
public ZhuanDAO getDao() {
return dao;
}
public void setDao(ZhuanDAO dao) {
this.dao = dao;
}
public void tranMoney(int a, int b, int money) {
DefaultTransactionDefinition dt = new DefaultTransactionDefinition();
dt.setPropagationBehavior(td.PROPAGATION_REQUIRED);
dt.setIsolationLevel(td.ISOLATION_READ_COMMITTED);
ts = ptm.getTransaction(td);
// 面向切面编程,我用一个代理类去代理这个实际的类,然后在用另一个类的属性(类属性==类对象)去实现被代理的类而且要加上额外的Props给这个被代理的类的方法加上事务,或者日志(这些东西并不影响方法的实现,但会约束方法是一个整体!)
try {
dao.addmoney(a, money);
dao.losemoney(b, money);
ptm.commit(ts);
} catch (Exception e) {
ptm.rollback(ts);
e.getStackTrace();// “一个”事务里包含很多事必须同时完成,才叫一个事务;
}
}
}
<bean id="" class="代理类Proxy">
<property name="transcitionManager">
<ref bean="transcitionManager" />
</property>
<property name="service">
<ref bean="dao.service"/>
</property>
<property name="" >
<props>
<prop key="*">传播方式</prop>
</props>
</property>
</bean>