page contents

mybatis批量更新出现问题,求解决方案

Pack 发布于 2020-01-09 17:04
阅读 558
收藏 0
分类:Java开发

XML是这样子的,但是实际运行报错

<!--批量更新-->

    <update id="updateUserBatch" parameterType="java.util.List">

        <foreach collection="list" item="items" index="index" open="" close="" separator=";">

            update hd_t_user

            <set>

                username = #{items.username,jdbcType=VARCHAR},

                password = #{items.password,jdbcType=VARCHAR}

            </set>

            where id = #{items.id,jdbcType=BIGINT}

        </foreach>

    </update>

报错

控制台没有打印哈,可能是有啥子问题,表现就是没有跟新数据库数据


解决方案一(但是目前有很多人用这个数据库,有限制,我不能这么设置,还有没有其他解决方案?)

attachments-2020-01-vRXU764l5e16ec98903d6.png

141
Pack
Pack

批量更新


<update id="updateList">

    update aaa_table t

        inner join

        <foreach collection="list" item="bean" separator="union all" open="(" 

          close=") t1 on t.id = t1.id and t.version = t1.version">

            select

              #{bean.id} as id,

              #{bean.version} as version,

              #{bean.updateTime} as update_time,

              #{bean.updateId} as update_id,

              #{bean.updateName} as update_name

              from dual

        </foreach>

       set

       t.version = t1.version + 1,

       t.update_time = t1.update_time,

       t.update_id = t1.update_id,

       t.update_name = t1.update_name

  </update>


请先 登录 后评论