Mybatis批量更新的问题

问题:使用mybatis在执批量更新操作时,一直报错执行失败

解决方法:

首先打印了SQL语句,发现SQL语句拿出来执行没问题,也可以批量执行。SQL没问题,应该是配置的问题。

在网上查询和很多资料,都说是在连接数据库的的URL后面加上关键字  allowMultiQueries=true 即可。

加上之后测试运行,还是同样的错误。

后来找到一篇源代码分析,提示报错的原因是multiStatementAllow的值为空。

<bean id="wall-config" class="com.alibaba.druid.wall.WallConfig"> <property name="multiStatementAllow" value="true" /> </bean>

<bean> <property name="config" ref="wall-config" /> </bean>

加上上述所述代码,依然报错。

 

后来发现问题出来配置重复上。

2. 在配置springdate数据源时,

<property name="filters" value="stat,wall" />

 

<property name="proxyFilters"> <list> <ref bean="stat-filter" /> <ref bean="wall-filter" /> </list>

</property>

上述只需要一个就行,而我同时配置了两个。删除上述第一个即可,运行成功。

 

解决步骤:

1. 连接mysql的url加上关键字  allowMultiQueries=true

2. 为配置的wall-filter中的multiStatementAllow添加true的值。

<bean id="wall-config" class="com.alibaba.druid.wall.WallConfig"> <property name="multiStatementAllow" value="true" /> </bean>

<bean> <property name="config" ref="wall-config" /> </bean>

3. filters留一个就行,附上配置

<property name="proxyFilters"> <list> <ref bean="stat-filter" /> <ref bean="wall-filter" /> </list>

</property>

 

<bean id="wall-filter" class="com.alibaba.druid.wall.WallFilter"> <bean id="wall-config" class="com.alibaba.druid.wall.WallConfig"><property name="multiStatementAllow" value="true" />

</bean>

<bean>

<property name="config" ref="wall-config" /> </bean> <bean id="stat-filter" class="com.alibaba.druid.filter.stat.StatFilter"><property name="mergeSql" value="true"></property> <property name="slowSqlMillis" value="10000"></property> <property name="logSlowSql" value="true"></property> </bean>



文章出处:http://www.cnblogs.com/zchenjian/p/7753533.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值