动态修改:用户根据需要选择性的修改信息。如何实现呢?
写这个功能的时候我也有借鉴过网上大家的写法,然后我发现我搜出来的大部分的实现方式都是使用的<set>和<trim>标签进行实现。当然啦,作为职场菜鸟的我想不出啥更好的办法也就直接那样写了,后面项目组中的老鸟看到我这样的写法,觉得这种方法其实并不是很好,就教了我另一种方式,收益匪浅,记录一波,感谢老鸟,感谢交流!
在动态修改的处理时,因为修改语句的结构是:UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值,这样就造成了一个问题,如果用户不满足你所有<trim>里面的条件,那岂不是sql语句就出现拼接错误了嘛,那为了避免这样的情况,这时候就只需要2步走。
1.修改代码就按照最原始的方式该咋写咋写,上代码
update
user_info
set
name = #{name},
address = #{address},
birthday = #{birthday}
where
id = #{id}
2.写Java部分的时候就需要注意了,就直接采用userInfoDto实体改变的方式实现动态修改,上代码
@Validated
public void updateUserInfo(
@Comment("用户id") @NotBlank String id,
@Comment("用户