mybatis-plus update方法

在没有修改之前,是用的

userService.updateById(user);

这个方法访问的话会出现一些问题。修改的时候,传入很多值,修改失败的情况。

看mybatis-plus官方文档,修改的话可以用 update方法,然后用条件构造器指定一些匹配方式,然后传入一个实体类,实体类里面有什么内容就修改什么内容。

条件构造器

mybatis-plus  update方法

mybatis-plus  update方法

 

 

mybatis-plus  update方法

 

修改了相关代码:

用户修改密码:

controller 层:

 

 /**
     * 修改
     */
    @LoginRequired
    @RequestMapping("/update")
    public R update(@RequestBody UserEntity user) {
        if (user == null) {
            return R.error("参数不能为空").put("code", LexueConstant.REGISTER_PARAM_EMPTY);
        }

        //1-学生,2-教师,3-管理员
        if (user.getUserType() != null && user.getUserType() != 1 && user.getUserType() != 2 && user.getUserType() != 3) {
            return R.error("用户类型指定错误,1-学生,2-教师,3-管理员").put("code", LexueConstant.REGISTER_USER_TYPE_ERROR);
        }
        if (user.getUsername() != null && !StringJudge.checkUsername(user.getUsername())) {
            return R.error("账号需6-12位的字母或数字").put("code", LexueConstant.REGISTER_USERNAME_ERROR);
        }

        if (user.getEmail() != null && !StringJudge.checkEmail(user.getEmail())) {
            return R.error("请输入正确的邮箱").put("code", LexueConstant.REGISTER_EMAIL_ERROR);
        }

        //注意,这里不能修改密码,因为是单向加密的形式,所以这里只能把密码设置成初始状态:123456
        if (user.getPassword() != null && user.getPassword().equals("123456")) {
            user.setPassword(bCryptPasswordEncoder.encode("123456"));
        } else if (user.getPassword()!=null&&!user.getPassword().equals(userService.getById(user.getId()).getPassword())) {
            return R.error("只能设置密码为“123456”,请在修改密码的位置修改密码").put("code", LexueConstant.NOT_UPDATE_PASSWORD);
        }
        userService.updateUser(user);
//        userService.updateById(user);
        return R.ok();
    }

service层

 

    @Override
    public R updateUser(UserEntity userEntity) {
        if(userEntity==null){
            return R.error("参数不能为空").put("code", LexueConstant.NOT_NULL);
        }
        if(userEntity.getId()==null||userEntity.getId()<=0){
            return R.error("用户id不能为空").put("code", LexueConstant.NOT_NULL);
        }
        UpdateWrapper<UserEntity> updateWrapper = new UpdateWrapper<>();
        updateWrapper.eq("id",userEntity.getId());

        Integer rows = userDao.update(userEntity, updateWrapper);


        return R.ok().put("code", LexueConstant.SUCCESS).put("影响的行数", rows+"行");
    }

 

idea重新打包,发布到云服务器上重新运行:

mybatis-plus  update方法

postman修改测试:

mybatis-plus  update方法

后台页面刷新后:

mybatis-plus  update方法

 

上一篇:mybatis-plus------代码生成器


下一篇:Vue3项目搭建规范