使用MyBatis进行批量的更新、删除报错

2020年12月6日 35点热度 0条评论 来源: 小曦阳哟

MySQL数据库:

<update id="writeOff" parameterType="Object">
	<if test="list != null and list.size() > 0 ">
		<foreach collection="list" item="l" open="" close="" separator=";">
			update sfb_pro_pay pp 
			set pp.paycapital_balance = pp.paycapital_balance - #{l.write_off},
			pp.status = #{l.status}
			where pp.pay_id = #{l.pay_id}
		</foreach>
	</if>
</update>

注意:MySQL数据需要dbc连接后加一个属性  &amp;allowMultiQueries=true

例如:jdbc:mysql://localhost:3306/test?useUnicode=true&amp;characterEncoding=gbk&amp;

zeroDateTimeBehavior=convertToNull&amp;allowMultiQueries=true

2017-04-13日更新:

上一次遇到这个问题时,没有把错误的日志信息给贴出来。

今天在执行批量删除的操作时,同样报错了。错误信息如下:

org.springframework.jdbc.BadSqlGrammarException: 
### Error updating database.  Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: #42000
### The error may involve defaultParameterMap
### The error occurred while setting parameters

但是把sql语句拿出来到数据库客户端执行是没有问题的。

解决方案是同样是在jdbc连接后增加&amp;allowMultiQueries=true这个属性。

    原文作者:小曦阳哟
    原文地址: https://blog.csdn.net/myNameIssls/article/details/53581037
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。