mybatis批量更新办法

开发的时候碰到一个场景,需要根据给定的id,更新表中的数据,如果写sql语句就是update tableName set columnA = valueA , columnB = valueB ...... where id in (1,2,3,4......) 这种,网上想要找找mybatis批量更新的方法,但是看下来大部分都是复制粘贴一样的内容,感觉太复杂了,看都不想看,又是利用insert的,又是利用replace的,方法倒是给出了不少,只是似乎都和我的业务场景不相符合。然后我尝试了一下另一个方法,如图是xml的代码

    <update id="updateBatch">
        update test_table
        <trim prefix="set " suffixOverrides=",">
            <if test="valueTest.valueA != null">value_a = #{valueTest.valueA},</if>
            <if test="valueTest.valueB != null">value_b = #{valueTest.valueB},</if>
        </trim>

        where id in (
        <foreach collection="ids" item="item" separator=",">
            #{item}
        </foreach>
        )
    </update>

对应的mapper层代码:

    public int updateBatch(@Param("ids") List<String> ids, @Param("valueTest") ValueTest valueabcdefg);

这样即可做到拿到根据对应的ids批量将数据更新为给定的数据

posted @ 2022-07-06 17:37  吃水果吗  阅读(159)  评论(0编辑  收藏  举报