环境Spring+Mybatis
<!-- 配置事务管理器 -->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>
<!-- 声明式事物管理 --> <tx:advice id="txAdvice" transaction-manager="transactionManager"> <tx:attributes> <tx:method name="get*" read-only="true" /> <tx:method name="find*" read-only="true" /> <tx:method name="load*" read-only="true" /> <tx:method name="query*" read-only="true" /> <tx:method name="add*" read-only="false" rollback-for="Exception" propagation="REQUIRED"/> <tx:method name="save*" read-only="false" rollback-for="Exception" propagation="REQUIRED"/> <tx:method name="insert*" read-only="false" rollback-for="Exception" propagation="REQUIRED"/> <tx:method name="update*" read-only="false" rollback-for="Exception" propagation="REQUIRED"/> <tx:method name="modify*" read-only="false" rollback-for="Exception" propagation="REQUIRED"/> <tx:method name="delete*" read-only="false" rollback-for="Exception" propagation="REQUIRED"/> <!-- <tx:method name="*" read-only="true"/> --> </tx:attributes> </tx:advice>
以上只为示例,使用事务控制连接数据库方法规范,只读方法和操作方法
有的项目中没有配置声明式事务,是在service层用
@Transactional(readOnly = false)
注解进行控制