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

来源:互联网 发布:白自在和谢烟客知乎 编辑:程序博客网 时间:2024/05/16 05:59

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这个属性。








0 0