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;
    }
相关推荐
武昌库里写JAVA1 小时前
39.剖析无处不在的数据结构
java·vue.js·spring boot·课程设计·宠物管理
Nelson_hehe3 小时前
Java基础第四章、面向对象
java·语法基础·面向对象程序设计
Thomas_YXQ3 小时前
Unity3D Lua集成技术指南
java·开发语言·驱动开发·junit·全文检索·lua·unity3d
ShiinaMashirol4 小时前
代码随想录打卡|Day27(合并区间、单调递增的数字、监控二叉树)
java·算法
东阳马生架构6 小时前
Nacos简介—3.Nacos的配置简介
java
北极的企鹅886 小时前
XML内容解析成实体类
xml·java·开发语言
oioihoii6 小时前
C++23 中 static_assert 和 if constexpr 的窄化布尔转换
java·jvm·c++23
聂 可 以6 小时前
调整IntelliJ IDEA当前文件所在目录(包路径)的显示位置
java·ide·intellij-idea
东阳马生架构6 小时前
Sentinel源码—7.参数限流和注解的实现一
java·sentinel
李白的粉6 小时前
基于springboot的在线教育系统
java·spring boot·毕业设计·课程设计·在线教育系统·源代码