关于更新签名

关于更新签名

上一阶段,老师说执行更新操作时,最好是先把原来的对象查出来,在原来的数据上修改。

在更新签名的方法updateUserInfo,先是从session中取出对象,这个对象不就是用户登录时记录的原对象吗,为什么不直接在这个user上调用set方法,而是新new了一个User对象再去更新?

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
慕丝1539783 2020-09-14 23:42:00

这里调用的是userMapper.updateByPrimaryKeySelective(user)这个方法,这个方法是插件自动生成的,你可以去UserMapper.xml里去看一下这个方法的Sql语句,大概意思是,如果某个字段的值不为null的话,就把该字段的值更新进去,如果为null的话,则没有更新这个字段。

试想一下,从session里拿到的user,属性(字段)都有值,包括updateTime属性(数据库里是update_time字段),如果直接用这个user,调用userMapper.updateByPrimaryKeySelective(user)方法,那update_time字段还是用以前的数据写入到数据库(不会默认更新到当前时间),就不符合逻辑了。

而且更新个性签名,也只是更新personalized_signature字段,所以只需要传入personalizedSignature和id就可以了,这样最安全,不会影响到其他字段。新建一个user,生成的sql语句是最干净的。

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师