MyBatis—xml动态增删思路记录
本文仅为作者个人理解,理性参考阅读!!!
Foreach标签的使用:
元素 | 描述 |
---|---|
collection | 待遍历集合名称 |
index | 索引 |
item | 遍历出的内容,可是对象格式变量值 |
open | 以xx开始 |
separator | 以xx间隔 |
end | 以xx结尾 |
trim标签的使用
元素 | 描述 |
---|---|
prefix | 以xx为前缀 |
suffixOverrides | 以xx间隔 |
suffix | 以xx结尾 |
trim的元素等同foreach - open/separator/end元素。
了解以上两个注解后动态更新就好解决了
<!-- 单条动态更新语句示例 -->
<update id="batchUpdate" parameterType="java.util.List">
update set TABLE_NAME
<trim prefix="SET" suffixOverrides=",">
<if test="property1 != null and property1 != ''">
column1 = #{property1}
</if>
<if test="property2 != null and property2 != ''">
column2 = #{property2}
</if>
<if test="property3 != null and property3 != ''">
column3 = #{property3}
</if>
....
</trim>
where id = #{id}
</update>
//mapper文件
boolean batchUpdate(List<BusiValuationSpeInfo> busiValuationSpeInfos);
<!-- 多条 利用foreach遍历组装多条update语句-->
<update id="batchUpdate" parameterType="java.util.List">
<foreach collection="list" index="index" item="item" separator=";