代码改变世界

关于Mybatis批量操作的问题

2017-12-09 19:59  三身石  阅读(224)  评论(0)    收藏  举报

Mybatis批量操作语句:例如

<update id="batchUpdate" parameterType="java.util.List">
  <foreach collection="list" item="pro" separator=";">
    update gy_product set
    sName=#{pro.sname,jdbcType=VARCHAR},
    sDeleteStatus=#{pro.sdeletestatus,jdbcType=VARCHAR},
    dModifyDate=NOW()
    where
    sCode=#{pro.scode,jdbcType=VARCHAR}
  </foreach>
</update>

如此做会生成以“;”分号分割的sql语句,在代码执行批量操作时导致异常。

解决方法:配置jdbc链接属性,允许批量操作    如下

jdbc.url=jdbc:mysql://127.0.0.1:3306/batch_test?createDatabaseIfNotExist=true&amp;useUnicode=true&amp;characterEncoding=utf-8&allowMultiQueries=true