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的主要内容,如果未能解决你的问题,请参考以下文章
Mybatis -- 动态Sql概述动态Sql之<if>(包含<where>)动态Sql之<foreach>sql片段抽取