欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Mybatis批量修改时出现报错问题解决方案

程序员文章站 2022-03-25 11:07:15
批量修改代码如下

批量修改代码如下

<update id="update_hotel_real_time_price" parametertype="java.util.list">
    <foreach collection="list" item="item" index="index" separator=";">
      update vst_hotel_real_time_price
      <set>
        <if test="item.realtimeprice1 != null">
          real_time_price1 = #{item.realtimeprice1},
        </if>
        <if test="item.realtimeprice2 != null">
          real_time_price2 = #{item.realtimeprice2},
        </if>
        <if test="item.realtimeremain1 != null">
          real_time_remain1 = #{item.realtimeremain1},
        </if>
        <if test="item.realtimeremain2 != null">
          real_time_remain2 = #{item.realtimeremain2},
        </if>
        update_time = now()
      </set>
      where product_id = ${item.productid}
     </foreach>
   </update>

今天在使用mybatis批量修改时报错,错误为sql语句错误:

开始检查xml中代码:

<update id="updatetypelist" parametertype="list">
    <foreach collection="list" item="type" index="index" separator=";">
      update t_type
      <set>
        <if test="type.name != null">
          t_name = #{type.name}
        </if>
      </set>
      where t_id = #{type.id}
    </foreach>
  </update>

感觉并没有错误,把错误语句复制到navicat上能正常运行,于是网上查找了一下需要在url语句中添加allowmultiqueries=true,添加后成功运行。

mysql中allowmultiqueries=true作用:

1.可以在sql语句后携带分号,实现多语句执行。

2.可以执行批处理,同时发出多个sql语句

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。