第一种使用事务方法:
1、首先在spring配置文件中配置
<!-- 开启事务 -->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSourceLoc" />
</bean>
<tx:annotation-driven transaction-manager="transactionManager" proxy-target-class="true" />
2、注解
@Transactional
这样就行了
注意:在try{}里出现异常时不会回滚事务的,需要手动回滚
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); //手动
第二个使用事务的方法:不需要注解,统一配置
<!-- 配置事务管理的数据库源 -->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSourceLoc" />
</bean>
<!-- 开启事务 -->
<tx:annotation-driven transaction-manager="transactionManager" proxy-target-class="true" />
<tx:advice id="transactionAdvice" transaction-manager="transactionManager">
<tx:attributes>
<!-- 配置哪些方法使用事务,什么时候回滚 -->
<tx:method name="*" propagation="REQUIRED" rollback-for="Exception"/>
</tx:attributes>
</tx:advice>
<aop:config>
<!-- 配置哪些包哪些类哪些方法使用事务 -->
<aop:pointcut expression="execution(* com.service.*.*(..))" id="advicePoinCut"/>
<aop:advisor advice-ref="transactionAdvice" pointcut-ref="advicePoinCut"/>
</aop:config>