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

mybatis 批量更新

程序员文章站 2022-05-25 15:44:19
...

 本次作为问题解决记录,稍后会做详细梳理

    <update id="updateDataValueByTypeAndLabel" parameterType="java.util.List">
        update sys_dict_data
        set dict_value=
        <foreach collection="list" item="item" index="index" separator=" " open="case dict_label" close="end">
            when #{item.dictLabel} then #{item.dictValue}
        </foreach>
        where dict_label in
        <foreach collection="list" index="index" item="item"
                 separator="," open="(" close=")">
            #{item.dictLabel,jdbcType=VARCHAR}
        </foreach>
    </update>

mybatis 批量更新

mybatis 批量更新 传递的数据也可以明文打印出来,需要自己在项目里面设置拦截器并且配置

update sys_dict_data set dict_value= case dict_label when ? then ? when ? then ? when ? then ? when ? then ? when ? then ? when ? then ? end where dict_label in ( ? , ? , ? , ? , ? , ? ) 

mybatis 批量更新

其中when...then...sql中的"switch" 语法。这里借助mybatis<foreach>语法来拼凑成了批量更新的sql