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;
    }
相关推荐
逝水如流年轻往返染尘几秒前
JAVA中的String类
java
一只叫煤球的猫3 分钟前
ThreadForge 1.2.0 发布:让 Java 并发代码更好写,这次补齐了高阶编排、示例与观测能力
java·设计模式·设计
counting money9 分钟前
Spring框架基础(依赖注入-半注解形式)
java·后端·spring
CN-Dust9 分钟前
【C++】for循环例题专题
java·c++·算法
染夕陌木22 分钟前
RPC/服务调用框架中“方法无法应用到给定类型”错误的通用排查指南
java·ide·rpc
大大杰哥26 分钟前
String常用方法
java
AI人工智能+电脑小能手42 分钟前
【大白话说Java面试题】【Java基础篇】第20题:HashMap在计算index的时候,为什么要对数组长度做减1操作
java·开发语言·数据结构·后端·面试·哈希算法·hash-index
嵌入式×边缘AI:打怪升级日志44 分钟前
嵌入式Linux开发(了解交叉编译工具链的组成)
java·linux·运维
FreeGo~1 小时前
Linux 系统编程 进程篇 (五)
java·linux·服务器
XiYang-DING1 小时前
【Java EE】定时器
java·python·java-ee