UserServiceImpl中updateInformation方法不明确
来源:6-7 更新用户个人信息功能开发
小果酱家的小饼干
2017-12-04
public ServerResponse<User> updateInformation(User user){ //这里用户名是不能被更改的 //这里的email是需要校验的 为了是不让email在不同的用户中重复出现 int resultCount = userMapper.checkEmailByUserId(user.getEmail(),user.getId()); if(resultCount > 0){ return ServerResponse.createByErrorMessage("亲,不好意思,该邮箱已经被注册了,请换一个试试呢"); } User updateUser = new User(); updateUser.setId(user.getId()); updateUser.setPhone(user.getPhone()); updateUser.setAnswer(user.getAnswer()); updateUser.setQuestion(user.getQuestion()); updateUser.setEmail(user.getEmail()); int updateCount = userMapper.updateByPrimaryKeySelective(updateUser); if(updateCount > 0){ return ServerResponse.createBySuccess("更新个人信息成功",updateUser); } return ServerResponse.createByErrorMessage("更新个人信息失败"); }
老师我这里不明确的地方有两个:
第一个:校验email 的时候使用了 userMapper的checkEmailByUserId方法,能不能使用之前写的checkValid
方法
第二个:userMapper.updateByPrimaryKeySelective(updateUser); 在更新操作的时候是我们自己建立的一个对象,而不是参数传进来的user参数,是否可以不用建立这个updateUser对象,而在返回这个对象之前,将对象中的密码置空 return ServerResponse.createBySuccess("更新个人信息成功",user); 老师,我不知道这样对不对。
1回答
-
不可以,因为参数都不一样。里面的service实现也不一样,这个是根据userid查email
原因不是你说的。selective是为了保证sql语句减少,因为xml里面对于空字段就不会拼接到sql
语句当中。提高sql的执行速度,把无用参数干掉。
咱们二期上线啦,【二期进阶Tomcat集群和Redis分布式课程已经上线】
二期课程网址 http://coding.imooc.com/class/162.html
另外,看帖子看帖子看帖子,重要的说三遍哈
我给大家整理了这个,有问题可以来看看先找一下。 肯定有你想要的哈
部署环境的话 ,建议看下文章最后一小段哟~首先跟着课程阿里云部署那个章节过一遍,可以先不跟着操作,做到心里有数,环境部署都做了什么。
尽快进入咱们QQ群哟~~进群方法下面思维导图那个帖子有。非常详细
课程项目思维导图及线上环境、测试环境、部署linux和windows等解答
http://www.imooc.com/article/20193
【重点】问答区常见问题整理
http://www.imooc.com/article/18998
课程项目QQ群分享手记
http://www.imooc.com/article/19094
找工作的季节之简历及找工作的分享
http://www.imooc.com/article/19998
项目环境、vsftpd、linux、mysql等各种配置、软件下载
http://learning.happymmall.com
课程求10分好评哇谢谢啦~~(づ ̄ 3 ̄)づ
022017-12-06
相似问题