第一种
<update id="updateBySelected" parameterType="users">
update users
<set>
<if test="name!=null">user_name = #{name}</if>
<if test="addr!=null">user_addr = #{addr}</if>
</set>
where user_id=#{id}
</update>
第二种
<update id="update" parameterType="users">
update users set user_name = #{name}, user_addr = #{addr}
where user_id=#{id}
</update>
个人认为有时候还是有需要将字段值设置为null的,比如清空日期字段。因此,针对只更新某一两个字段值的情况,我一般是这样操作的:
User user = userService.findById(id);
user.setName(name);
// 同时更新User表所有字段值
userService.update(user);