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回答

Geely

2017-12-05

  1. 不可以,因为参数都不一样。里面的service实现也不一样,这个是根据userid查email

  2. 原因不是你说的。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 ̄)づ




0
2
Geely
回复
小果酱家的小饼干
好的不客气,还不去给课程10分好评(坏笑)
2017-12-06
共2条回复

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

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

9476 学习 · 8804 问题

查看课程