Mybatis批量更新(MySQL)

MySQL批量update

參數(shù)為List<T>

<update id="batchUpdateEmployerMissionTypeInfoByOrder" parameterType="java.util.List">
        update employer_mission_type_manage
        <trim prefix="set" suffixOverrides=",">
            <trim prefix="type_order=case" suffix="end,">
                <foreach collection="list" item="item" index="index">
                    <if test="item.typeId!=null">
                        when type_id=#{item.typeId} then #{item.typeOrder}
                    </if>
                </foreach>
            </trim>
        </trim>
        where type_id in
        <foreach collection="list" item="item" separator="," open="(" close=")">
            #{item.typeId,jdbcType=INTEGER}
        </foreach>
    </update>

這只是mysql批量更新的一種寫法,上述sql也可以寫成直接將 update 語句放到<foreach>塊中去執(zhí)行的方式,這種方式會產(chǎn)生多條 update 語句。有的文章說多條update語句會比本文開始的那種方式快,當(dāng)然也有人說本文一開始的寫法好,我也不知道哪個好,只是因為這個方法寫著麻煩,所以我記錄一下。
在本文中的update語句的where條件里,也可以寫成如下形式:

        where 
        <foreach collection="list" item="item" separator="or">
            type_id = #{item.typeId,jdbcType=INTEGER}
        </foreach>

這種用 or 的寫法據(jù)說會影響性能,所以本文采用的是 in 的寫法,感興趣的話可以自行百度,有很多重復(fù)的文章。
不扯了,就這樣。

參考:https://blog.csdn.net/xyjawq1/article/details/74129316/

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容