编写在XXXXXX.XML文件,代码如下:
<update id="updateUserTrim" parameterType="user">
UPDATE USER
<!----trim 标签prefix:前缀替换或新增内容 prefixOverrides:前缀匹配条件suffix: 后缀替换和新增内容suffixOverrides:后缀匹配条件-->
<trim suffix="" suffixOverrides="," prefix="set" prefixOverrides="">
<if test="age!=null">
age=#{age},
</if>
<if test="name !=null">
name=#{name},
</if>
<trim>
<trim prefix="where" prefixOverrides="AND|OR">
<if test="id!=null">
and id=#{id}
</if>
<trim>
</update>
总结;
<trim>是一个自定义标签,元素的作用是对SQL片段做前后缀处理。
prefix:前缀替换或新增内容,即替换后的前缀
prefixOverrides:前缀匹配条件,即要被替换掉的前缀
suffix:后缀替换或新增内容,即替换后的后缀
suffixOverrides:后缀匹配条件,即要被替换的后缀
执行原理:当trim标签内容SQL不为空时,对SQL的前后缀处理是,首先会删除前后缀匹配到的内容,然后增加替换的前后缀内容。
foreach循环
<!--使用foreach如果传入参数是java.util.List这里固定写法collection="list" 或者 collection="controller" -->
<update id="updateAllUser" parameterType="List">
update user set age=age+1 where id in
<foreach item="item" index="index” collection="list" open="("separator="," close=")" >
#{item}
</foreach>
</update>
option:开始
separator:分隔符
close:结束