set一般用于更新操作。
需求: 根据传⼊的⽤⼾对象属性来更新⽤⼾数据,可以使⽤标签来指定动态内容.
接⼝定义: 根据传⼊的⽤⼾ id 属性,修改其他不为 null 的属性
<update id="updateUserByCondition">
update userinfo
<set>
<if test="username!=null">
username=#{username},
</if>
<if test="age!=null">
age=#{age},
</if>
<if test="deleteFlag!=null">
delete_flag=#{deleteFlag}
</if>
</set>
where id=#{id};
</update>
如果我们不设置deleteFlag,此时age不为空的情况下,后面的,是多余的,set标签会进行去除掉嘛?此时set标签会自动删除额外的逗号。
<set> :动态的在SQL语句中插⼊set关键字,并会删掉额外的逗号. (⽤于update语句中) 以上标签也可以使⽤ <trim prefix="set" suffixOverrides=","> 替换