1、配置文件 applicationContext.xml:
<bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager" p:dataSource-ref="dataSource"/>
2、在需要加事务的方法上加上
DataSourceTransactionManager transactionManager = (DataSourceTransactionManager) ctx .getBean("txManager"); DefaultTransactionDefinition def = new DefaultTransactionDefinition(); def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRES_NEW); // 事物隔离级别,开启新事务,这样会比较安全些。 TransactionStatus status = transactionManager.getTransaction(def); // 获得事务状态 try { //逻辑代码,可以写上你的逻辑处理代码 transactionManager.commit(status); } catch (Exception e) { transactionManager.rollback(status); }
这是在有 ApplicationContext 的情况下、
3.ApplicationContext 不存在的情况下
@Autowired private DataSourceTransactionManager txManager; DefaultTransactionDefinition def = new DefaultTransactionDefinition(); def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRES_NEW);// 事物隔离级别,开启新事务 TransactionStatus status = txManager.getTransaction(def); // 获得事务状态 try{ //逻辑代码,可以写上你的逻辑处理代码 txManager.commit(status); }catch(Exception e){ txManager.rollback(status); }