插入一条用户记录的时候返回这个用户的信息,如何把密码去掉

    @Insert("INSERT INTO user (username,name,password,mobile,create_time) values(#{username},#{name},#{password},#{mobile},#{create_time})")
    @SelectKey(statement="SELECT LAST_INSERT_ID()", keyProperty="id", before=false, resultType=Long.class)
    int insertByUser(User user);

在mapper里使用这个插入数据库

userMapper.insertByUser(user)

在service里调用方法插入,我想获得插入之后的用户信息和插入的id,目前的操作是直接返回user,但是其中带着password这个参数,这个应该怎么插入之后去掉,有没有好的方法

阅读 4.1k
6 个回答

1.先user.setPassword(null);然后返回user
2.如果要返回json 可以直接把password的字段忽略掉

建议采用二楼的方法,使用良好定义的vo可以降低类和类之间的耦合程度
不建议使用user.setPassword(null)

专门为前端开一个vo对象

问题过于简单。。。。楼上回答都可以,666

vo是正解,vo po dto 这些都有自己的场景

进阶版。如何优雅的去掉密码。
废话不多说,直接上伪代码。

class UserView extends HashMap {
    
    public UserView(User user) {
        put("name": user.getName());
        //put("pwd": user.getPwd());
    }
}

调用时

return new UserView(user);
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题