展开
拓展 关闭
订阅号推广码
GitHub
视频
公告栏 关闭

Mybatis plus入门(六):更新

目录

  • 根据id修改,使用BaseMapper接口的updateById方法,传入参数为id有值的实体对象
  • 根据id更新,使用BaseMapper接口的updateById方法,传入参数为id有值的实体对象
  • 按条件更新,使用BaseMapper的update方法,传入参数为1个实体对象和Wrappers
  • 按条件更新,使用BaseMapper的update方法,传入参数为1个实体对象和Wrappers对象
  • 按条件更新,使用BaseMapper接口的update方法,传入参数为1个实体对象和QueryWrapper对象
  • 按条件更新,使用BaseMapper接口的update方法,传入参数为1个实体对象和QueryWrapper对象
  • 按条件更新数据,使用BaseMapper接口的update方法,更新符合条件的数据,传入参数为UpdateWrapper或LambdaUpdateWrapper

代码案例

  • 根据id修改,使用BaseMapper接口的updateById方法,传入参数为id有值的实体对象
    @GetMapping("/test7")
    @ResponseBody
    public String test7() {
        User user = userDao.selectById("1");
        user.setAge(99);
        userDao.updateById(user);
        return "success";
    }
  • 根据id更新,使用BaseMapper接口的updateById方法,传入参数为id有值的实体对象
    @RequestMapping(value = "/test12")
    @ResponseBody
    public String test12(){
        mapper.updateById(new User().setId(1L).setEmail("ab@c.c"));
        return "success";
    }
  • 按条件更新,使用BaseMapper的update方法,传入参数为1个实体对象和Wrappers
    @RequestMapping(value = "/test12")
    @ResponseBody
    public String test12(){
        mapper.update(
                // 新建对象name设置为mp
                new User().setName("mp"),
                // 将id为2的数据,age设置为3,name设置为mp
                Wrappers.<User>lambdaUpdate()
                        .set(User::getAge, 3)
                        .eq(User::getId, 2)
        );
        return "success";
    }

    @RequestMapping(value = "/test12")
    @ResponseBody
    public String test12(){
        // 将id为2的对象邮箱设置为null
        mapper.update(null, Wrappers.<User>lambdaUpdate().set(User::getEmail, null).eq(User::getId, 2));
        return "success";
    }
  • 按条件更新,使用BaseMapper的update方法,传入参数为1个实体对象和Wrappers对象
    @RequestMapping(value = "/test12")
    @ResponseBody
    public String test12(){
        // 将id为2的对象age设置为null,邮箱设置为miemie2@baomidou.com
        mapper.update(
                new User().setEmail("miemie2@baomidou.com"),
                Wrappers.<User>lambdaUpdate()
                        .set(User::getAge, null)
                        .eq(User::getId, 2)
        );
        return "success";
    }
  • 按条件更新,使用BaseMapper接口的update方法,传入参数为1个实体对象和QueryWrapper对象
    @RequestMapping(value = "/test12")
    @ResponseBody
    public String test12(){
        mapper.update(
                new User().setEmail("miemie@baomidou.com"),
                new QueryWrapper<User>()
                        .lambda().eq(User::getId, 2)
        );
        return "success";
    }
  • 按条件更新,使用BaseMapper接口的update方法,传入参数为1个实体对象和QueryWrapper对象
    @GetMapping("/test8")
    @ResponseBody
    public String test8() {
        User user = userDao.selectById("1");
        user.setName("狗蛋");
        QueryWrapper<User> updateWrapper = new QueryWrapper<>();
        // 修改age=99的对象
        updateWrapper.eq("age",99);
        userDao.update(user, updateWrapper);
        return "success";
    }
  • 按条件更新数据,使用BaseMapper接口的update方法,更新符合条件的数据,传入参数为UpdateWrapper或LambdaUpdateWrapper
    @RequestMapping("/test0")
    @ResponseBody
    public String test0(){
        // 方式一
        User user = new User();
        user.setAge(29);
        user.setEmail("test3update@baomidou.com");
        userMapper.update(user,new UpdateWrapper<User>().eq("name","Tom"));

        //方式二:不创建User对象
        userMapper.update(null,new UpdateWrapper<User>()
                // 更新name为Tom的数据
                .set("age",29).set("email","test3update@baomidou.com").eq("name","Tom"));

        // 方式三:使用lambda条件构造器
        userMapper.update(null,new LambdaUpdateWrapper<User>()
                .set(User::getAge,29).set(User::getEmail,"test3update@baomidou.com").eq(User::getName,"Tom"));
        return "success";
    }
posted @ 2022-04-27 14:13  DogLeftover  阅读(1248)  评论(0编辑  收藏  举报