MybatisPlus常用增删改查

记录下MybatisPlus的简单的增删改查

接口概述

Service和Mapper区别

Mapper简化了单表的sql操作步骤(CRUD),而Serivce则是对Mapper的功能增强。

Service虽然加入了数据库的操作,但还是以业务功能为主,而更加复杂的SQL查询,还是要靠Mapper对应的XML文件里去编写SQL语句

常用增删改查

查询所有数据

java 复制代码
   /**
     * 查询所有数据
     */
    @GetMapping("/getUserList")
    public List<TrainUserEntity> getUserList() {
        return trainUserService.list();
    }

根据id查询

java 复制代码
  /**
     * 根据id查询数据
     */
    @GetMapping("/getUserById")
    public TrainUserEntity getUserById(@RequestParam String id) {
        return trainUserService.getById(id);
    }

根据条件查询

java 复制代码
   /**
     * 使用LambdaQueryWrapper查询指定年龄的人员
     */
    @Override
    public List<TrainUserEntity> getUserByAge(String age) {
        LambdaQueryWrapper<TrainUserEntity> userEntityLambdaQueryWrapper = new LambdaQueryWrapper<>();
        userEntityLambdaQueryWrapper.eq(TrainUserEntity::getAge, age);
        List<TrainUserEntity> list = trainUserMapper.selectList(userEntityLambdaQueryWrapper);
        return list;
    }

使用exists查询

查询有所属部门的人员

java 复制代码
  
    public List<TrainUserEntity> getUserInfo() {
        LambdaQueryWrapper<TrainUserEntity> wrapper = new LambdaQueryWrapper<>();
        wrapper.exists("SELECT 1 FROM DEPT WHERE DEPT.DID = USER.DEPTID");
        List<TrainUserEntity> userVOList = trainMapper.selectList(wrapper);
        return userVOList;
    }

生成的SQL:

sql 复制代码
SELECT id,name,age,address,deptid FROM user WHERE (EXISTS (SELECT 1 FROM DEPT WHERE DEPT.DID = USER.DEPTID))

使用xml查询



新增

java 复制代码
    /**
     * 新增
     *
     * @param trainUserEntity 需要插入的数据
     * @return 是否成功
     */
    @PostMapping("/saveUser")
    public boolean saveUser(@RequestBody TrainUserEntity trainUserEntity) {
        return trainService.save(trainUserEntity);
    }
java 复制代码
   /**
     * 新增数据
     */
    @Override
    public boolean add(TrainUserEntity trainUserEntity) {
        return trainMapper.add(trainUserEntity);
    }

删除

java 复制代码
    /**
     * 根据主键id删除一条数据
     *
     * @param id 主键id
     * @return 是否成功
     */
    @PostMapping("/removeById")
    public boolean deleteById(@RequestParam String id) {
        return trainService.removeById(id);
    }
java 复制代码
  /**
     * 根据主键id删除一条数据
     *
     * @param id 主键id
     * @return 删除数据的条数
     */
    @Override
    public int deleteById(String id) {
        LambdaQueryWrapper<TrainUserEntity> userEntityLambdaQueryWrapper = new LambdaQueryWrapper<>();
        userEntityLambdaQueryWrapper.eq(TrainUserEntity::getId, id);
        int result = trainMapper.delete(userEntityLambdaQueryWrapper);
        return result;
    }

修改

java 复制代码
   /**
     * id修改一条数据
     *
     * @param trainUserEntity 需要修改的数据
     * @return 修改结果
     */
    @PostMapping("/updateUser")
    public boolean updateUser(@RequestBody TrainUserEntity trainUserEntity) {
        return trainService.updateById(trainUserEntity);
    }
java 复制代码
    /**
     * 根据id更新实体数据
     */
    @Override
    public int modifyById(TrainUserEntity trainUserEntity) {
        LambdaUpdateWrapper<TrainUserEntity> updateWrapper = new LambdaUpdateWrapper<>();
        updateWrapper.eq(TrainUserEntity::getId, trainUserEntity.getId())
                .set(TrainUserEntity::getName, trainUserEntity.getName())
                .set(TrainUserEntity::getAddress, trainUserEntity.getAddress());
        int result = trainMapper.update(null, updateWrapper);
        return result;
    }
相关推荐
Fireworkitte3 小时前
Apache POI 详解 - Java 操作 Excel/Word/PPT
java·apache·excel
weixin-a153003083163 小时前
【playwright篇】教程(十七)[html元素知识]
java·前端·html
DCTANT3 小时前
【原创】国产化适配-全量迁移MySQL数据到OpenGauss数据库
java·数据库·spring boot·mysql·opengauss
Touper.3 小时前
SpringBoot -- 自动配置原理
java·spring boot·后端
黄雪超3 小时前
JVM——函数式语法糖:如何使用Function、Stream来编写函数式程序?
java·开发语言·jvm
ThetaarSofVenice3 小时前
对象的finalization机制Test
java·开发语言·jvm
望获linux5 小时前
【实时Linux实战系列】CPU 隔离与屏蔽技术
java·linux·运维·服务器·操作系统·开源软件·嵌入式软件
JosieBook5 小时前
【Java编程动手学】使用IDEA创建第一个HelloJava程序
java·开发语言·intellij-idea
Thomas_YXQ5 小时前
Unity3D DOTS场景流式加载技术
java·开发语言·unity
summer夏1235 小时前
2025.07 做什么
java·android studio