关于更新签名
上一阶段,老师说执行更新操作时,最好是先把原来的对象查出来,在原来的数据上修改。
在更新签名的方法updateUserInfo,先是从session中取出对象,这个对象不就是用户登录时记录的原对象吗,为什么不直接在这个user上调用set方法,而是新new了一个User对象再去更新?
正在回答 回答被采纳积分+1
这里调用的是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语句是最干净的。
相似问题
登录后可查看更多问答,登录/注册
- 参与学习 人
- 提交作业 9393 份
- 解答问题 16556 个
综合就业常年第一,编程排行常年霸榜,无需脱产即可学习,北上广深月薪过万 无论你是未就业的学生还是想转行的在职人员,不需要基础,只要你有梦想,想高薪
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星