不理解为什么要new一个User

来源:6-7 更新用户个人信息功能开发

zuo4

2017-06-29

http://szimg.mukewang.com/5955186b0001f9c712910685.jpg

new一个User的作用在于什么,,,,想了半天没明白,,,,

写回答

6回答

about_blank

2017-08-31

传进来的user包含所有的数据,包含了你想更新的,和不想更新的

usermapper 下面那个方法的sql是根据你传进去的对象字段

判断是否为空,如果不为空则全部更新

如果直接传进去会把不想更新的一些东西也会覆盖掉

现在业务比较简单的时候 可能不会出大问题

当业务较多的时候user会被多个方法操作

有可能还会产生并发数据一致性吧 我猜的

是一种开发规范

还有一种可能是user对象比较大 操作数据库io 消耗比较大

我的理解


3
1
从哪里跌倒还是在爬起来
因为提前user.id,user.name不能修改,所以service来处理的时候,只需要把要修改的数据做一下修改就可以 (这里id就显得特别特别重要,因为我可以指定id,来处理我要指定修改的sql数据。所以在这里new对象,我想也是可以方便接收要被处理字段)。规范开发,不然会因为一些别的问题,把之前的数据给修改掉。这样你开发起来也比较明了。 我的理解
2018-04-17
共1条回复

Geely

2018-04-22

updateBySelective只更新非空属性。new一个user,避免重写所有字段


简单的说就是这个原因~

0
0

慕粉121948417

2018-03-01

new 的这个updateUser其实只是一个载体,通过参数里面传过来的那个user(特定的在Controller里面设定好id的user,这个user参数就是携带着从前端更新过的个人信息的user)将需要更新的信息放入到updateUser。sql里面回判断传进去的字段是不是空的,空的就不更新,不是空的就更新。我嘴笨,理解也不到位,多担待~

0
0

慕码人7165578

2017-09-26

就是为了保证不更新的字段为null。也可以挨个把user不更新的字段都设置为null,但那样比较麻烦。

0
0

卷幕

2017-08-31

我也有点不理解,一楼这哥们的回答,我也理解不了。不过,传进来的user,里面没有id的。传进来的user不就是要更新的数据吗?updateBySelective只更新非空属性。那就是有啥更新啥了,逻辑也对啊。

0
0

慕码人7165578

2017-06-30

updateBySelective只更新非空属性。new一个user,避免重写所有字段

0
0

从0开始 独立完成企业级Java电商网站服务端开发

前后端分离,数据库接口设计,架构设计,功能开发,上线运维

9476 学习 · 8804 问题

查看课程