MyBatis批量更新动态sql

Posted JAGNIG

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MyBatis批量更新动态sql相关的知识,希望对你有一定的参考价值。

<update id="updateDataKetState">
        update ${tablespace}.IDEA_DATAKEY_STATE 
        <trim prefix="set" suffixOverrides=",">
            <trim prefix="STATENAME = case" suffix="end,">
                <foreach collection="datas"  item="data" >
                <if test="data.stateName !=null and data.stateName !=‘‘">
                    when UUID=#{data.uuid} then #{data.stateName}
                </if>
                </foreach>
            </trim>
            <trim prefix="STATEINFO = case" suffix="end,">
                <foreach collection="datas"  item="data" >
                <if test="data.stateInfo !=null">
                    when UUID=#{data.uuid} then #{data.stateInfo}
                </if>
                </foreach>
            </trim>
            <trim prefix="STATENO = case" suffix="end,">
                <foreach collection="datas"  item="data" >
                <if test="data.stateNo !=null and data.stateNo !=‘‘">
                    when UUID=#{data.uuid} then #{data.stateNo}
                </if>
                </foreach>
            </trim>
        </trim>
        where UUID in
        <foreach collection="datas" item="data" open="(" close=")" separator=",">
                #{data.uuid}
        </foreach>
    </update>

<trim>属性说明
1.prefix,suffix 表示在trim标签包裹的部分的前面或者后面添加内容
2.如果同时有prefixOverrides,suffixOverrides 表示会用prefix,suffix覆盖Overrides中的内容。
3.如果只有prefixOverrides,suffixOverrides 表示删除开头的或结尾的xxxOverides指定的内容




以上是关于MyBatis批量更新动态sql的主要内容,如果未能解决你的问题,请参考以下文章

Mybaits的批量操作包括批量删除 批量增加和批量更新

MyBatis动态SQL标签用法

mybatis学习(39):动态sql片段

mybatis中批量更新的问题

mybatis动态sql片段与分页,排序,传参的使用

Mybatis -- 动态Sql概述动态Sql之<if>(包含<where>)动态Sql之<foreach>sql片段抽取