Commit 1eab7759 by gechengyang

事务管理

parent e7e39cee
package com.brilliance.remit.common.util;
import org.springframework.transaction.TransactionDefinition;
import org.springframework.transaction.support.DefaultTransactionDefinition;
public class DbUtil {
public static DefaultTransactionDefinition getDbDefinition() {
DefaultTransactionDefinition def = new DefaultTransactionDefinition();
// 设置事务隔离级别,开启新事务
def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRES_NEW);
return def;
}
}
package com.brilliance.remit.service.imp;
import javax.annotation.Resource;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
import org.springframework.stereotype.Service;
import org.springframework.transaction.TransactionStatus;
import com.brilliance.remit.common.util.DbUtil;
import com.brilliance.remit.db.dao.CpdMapper;
import com.brilliance.remit.db.dao.TrnMapper;
import com.brilliance.remit.db.model.Cpd;
......@@ -15,15 +20,27 @@ public class RemitServiceImp implements RemitService {
@Autowired
private TrnMapper trnMapper;
private static int i = 10;
@Resource(name = "txManager")
private DataSourceTransactionManager transactionManager;
@Override
public void test() {
// 事务操作
TransactionStatus status = transactionManager.getTransaction(DbUtil.getDbDefinition());
try {
Cpd cpd = new Cpd();
cpd.setINR(String.valueOf(i));
i++;
cpdMapper.insert(cpd);
transactionManager.commit(status);
cpdMapper.insert(cpd);
System.out.println("insert cpd success !!!");
transactionManager.commit(status);
} catch (Exception e) {
e.printStackTrace();
transactionManager.rollback(status);
}
Cpd cpd = new Cpd();
cpd.setINR(String.valueOf(i));
i++;
cpdMapper.insert(cpd);
System.out.println("insert cpd success !!!");
}
}
......@@ -12,7 +12,7 @@
<!-- 自动扫描注解的bean  -->
<context:component-scan base-package="com.brilliance.remit.service"/>
<!-- 配置数据源  -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" >
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/>
<property name="url" value="jdbc:oracle:thin:@172.17.2.4:1521:orcl"/>
<property name="username" value="xxremit"/>
......@@ -30,6 +30,10 @@
<property name="mapperLocations" value="classpath*:com/brilliance/remit/db/mapper/**/*.xml"/>
</bean>
<!-- 事务管理器  -->
<bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>
<!-- 配置mapper对应的dao和mybatis工厂  -->
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment