ibatis执行查询后自动执行一个commit 就是ibatis执行DB后自动执行下commit 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 spring 会帮你做吧,问题是查询语句为啥还要commit呢 大哥,是啊,增删改都用了spring的事务,但是select没有用事务,但是这边因为我们用得是mysql,在执行时有可能锁表,所以我们DBA要求,在每次select之后都要执行下commit操作,这个让我写成公用的方法,就是说,在不改变别人查询方法的前提下,增加个commit语句,咋做呢? 好多人都用MySQL啊,spring的事务配好了,应该没太大问题吧。一定要加一个commit操作,可以试着自己自定义spring aop试试 但是DBA又不建议直接对select用切面编程,怕影响性能,他的意思就是我能否写出个公用的方法,在别人调用查询的方法后,自动调用,这个怎么做呀?大神 我去,这个自动调用本来就相当于面向切面了啊,不用aop,还不让人去改代码,你们的dba管的有点多了吧,面向切面咋就影响性能了?其实你这个最简单的方法就是把查询方法配到spring事务里,加个readonly。如果不用面向切面,只能在service的共同父类里边做点手脚了吧,具体实现你得自己想想了 是啊,但是假如用切面的话,怎么仅仅对select型的方法用只读的事务呢,我们的查询方法的命名是没有规范的额,什末名字都有,这个怎么配置呢 应该也有一定规范吧,例如不可能用update,del这些开头吧,把这些的配置成正常事务,剩下的 method="*" 配成只读的试试吧 改成这个鸟样了,凑合这用吧 <!--Spring申明式事务,AOP切面切入 --> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource"> <ref local="userdataSource" /> </property> </bean> <tx:advice id="txAdvice" transaction-manager="transactionManager"> <tx:attributes> <tx:method name="save*" propagation="REQUIRED" rollback-for="Exception"/> <tx:method name="insert*" propagation="REQUIRED" rollback-for="Exception"/> <tx:method name="add*" propagation="REQUIRED" rollback-for="Exception"/> <tx:method name="del*" propagation="REQUIRED" rollback-for="Exception"/> <tx:method name="update*" propagation="REQUIRED" rollback-for="Exception"/> <tx:method name="*" propagation="REQUIRED" read-only="true"/> </tx:attributes> </tx:advice> <aop:config> <aop:pointcut id="allManagerMethod" expression="execution(* com.paic.icore.aops.*.dao.*(..))" /> <aop:advisor pointcut-ref="allManagerMethod" advice-ref="txAdvice" /> </aop:config> 这么多热心的人帮你,让我觉的你们的DBA就是个锤子。 软件设计模式速查手册 ★★★用ntp时间同步之后,Thread.sleep睡眠时间不对★★★ 简单问题,求指导。。。 eclipse的中文过滤器问题 java向上转型输出的问题 Struts的 ActionSupport如何获得 <s:param>中的值??????????? 正则表达式判断是否是一个java方法 谁知道这是什么错误?谢谢 哪位大哥有JSP音乐网站原代码啊?本人第一次做音乐网站``完全不熟悉`` 一个很菜的问题 日期类型字段格式转换 重复数据插入问题
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource">
<ref local="userdataSource" />
</property>
</bean>
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="save*" propagation="REQUIRED" rollback-for="Exception"/>
<tx:method name="insert*" propagation="REQUIRED" rollback-for="Exception"/>
<tx:method name="add*" propagation="REQUIRED" rollback-for="Exception"/>
<tx:method name="del*" propagation="REQUIRED" rollback-for="Exception"/>
<tx:method name="update*" propagation="REQUIRED" rollback-for="Exception"/>
<tx:method name="*" propagation="REQUIRED" read-only="true"/>
</tx:attributes>
</tx:advice>
<aop:config>
<aop:pointcut id="allManagerMethod" expression="execution(* com.paic.icore.aops.*.dao.*(..))" />
<aop:advisor pointcut-ref="allManagerMethod" advice-ref="txAdvice" />
</aop:config>