環境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)
注解進行控制