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;
    }
相关推荐
摇滚侠7 分钟前
在 SpringBoot 项目中,开发工具使用 IDEA,.idea 目录下的文件需要提交吗
java·spring boot·intellij-idea
云姜.12 分钟前
java多态
java·开发语言·c++
李堇15 分钟前
android滚动列表VerticalRollingTextView
android·java
泉-java34 分钟前
第56条:为所有导出的API元素编写文档注释 《Effective Java》
java·开发语言
zfoo-framework1 小时前
帧同步和状态同步
java
charlotte102410241 小时前
高并发:关于在等待学校教务系统选课时的碎碎念
java·运维·网络
亓才孓1 小时前
[JDBC]PreparedStatement替代Statement
java·数据库
_F_y2 小时前
C++重点知识总结
java·jvm·c++
打工的小王2 小时前
Spring Boot(三)Spring Boot整合SpringMVC
java·spring boot·后端
毕设源码-赖学姐2 小时前
【开题答辩全过程】以 高校体育场馆管理系统为例,包含答辩的问题和答案
java·spring boot