我的编程笔记
  • 云胡的编程笔记
  • 后端
    • Spring Boot 配置 MySQL 数据库
    • MyBatis-Plus 实现增删改查操作
    • Java 后端将上传的 csv 文件转为 Excel xlsx 文件
  • JavaScript
    • JavaScript 三种循环方法
    • JavaScript 箭头函数
    • JavaScript 高阶函数
    • JavaScript 变量作用域
    • JavaScript 操作 DOM
  • Vue3
    • Vue3 搭配 Element-Plus
    • Vue3 实现路由跳转
    • Vue3 上传 Excel 文件
  • Cpp
    • C++ Vector 易错点
  • Qt
    • Qt 实时显示鼠标位置
  • Python
  • 编辑器
    • Visual Studio Code 使用
  • 其他
    • 网站和软件推荐
  • 数据结构与算法
由 GitBook 提供支持
在本页
  • 一、概述
  • 二、表的内容
  • 三、查询
  • 四、插入记录
  • 五、修改记录
  • 六、删除记录
  • 七、完整代码
  • 八、参考资料
在GitHub上编辑
  1. 后端

MyBatis-Plus 实现增删改查操作

一、概述

之前已经使用 Spring Boot 集成 MyBatis-Plus,这次实现增删改查操作。

二、表的内容

id

name

age

email

1

孙悟空

1000

sunwukong@gmail.com

2

唐僧

20

tangseng@gmail.com

3

猪八戒

800

zhubajie@gmail.com

4

沙僧

900

shaseng@gmail.com

5

白龙马

500

bailongma@gmail.com

三、查询

3.1 通过 id 查询

/**
 * 查询通过 id
 */
 @GetMapping("/selectById")
 public User selectById(){
   User user = userMapper.selectById(3);
   return user;
 }

输出:

[
    {
        "id": 3,
        "name": "猪八戒",
        "age": 800,
        "email": "zhubajie@gmail.com"
    }
]

3.2 通过条件构造器查询

    /**
     * 查询通过条件构造器
     */
	@GetMapping("/selectByWrapper")
    public List<User> selectByWrapper(){
        QueryWrapper<User> queryWrapper = new QueryWrapper<>();
        queryWrapper
                .eq("age", 1000);

        // 查询多条数据
        List<User> list = userMapper.selectList(queryWrapper);
        return list;
    }

输出:

[
    {
        "id": 1,
        "name": "孙悟空",
        "age": 1000,
        "email": "sunwukong@gmail.com"
    }
]

四、插入记录

    /**
     * 添加记录
     */
    @GetMapping("/insert")
    public List<User> insert(){
        User user = new User();
        user.setId(6L);
        user.setAge(1500);
        user.setName("二郎神");
        user.setEmail("erlangshen@gmail.com");
        userMapper.insert(user);
		
		// 查询添加后的表
        List<User> list = userMapper.selectList(null);
        return list;
    }

输出:

[
    {
        "id": 1,
        "name": "孙悟空",
        "age": 1000,
        "email": "sunwukong@gmail.com"
    },
    {
        "id": 2,
        "name": "唐僧",
        "age": 20,
        "email": "tangseng@gmail.com"
    },
    {
        "id": 3,
        "name": "猪八戒",
        "age": 800,
        "email": "zhubajie@gmail.com"
    },
    {
        "id": 4,
        "name": "沙僧",
        "age": 900,
        "email": "shaseng@gmail.com"
    },
    {
        "id": 5,
        "name": "白龙马",
        "age": 500,
        "email": "bailongma@gmail.com"
    },
    {
        "id": 6,
        "name": "二郎神",
        "age": 1500,
        "email": "erlangshen@gmail.com"
    }
]

可以看到增加了 「二郎神」 这个用户。

五、修改记录

   /**
     * 修改记录
     */
    @GetMapping("/update")
    public List<User> update(){
        UpdateWrapper<User> updateWrapper = new UpdateWrapper<>();
        updateWrapper.eq("name","唐僧")
                     .set("age", 1200);

        Integer rows = userMapper.update(null, updateWrapper);

        // 查询修改后的数据
        List<User> list = userMapper.selectList(null);
        return list;
    }

输出:

[
    {
        "id": 1,
        "name": "孙悟空",
        "age": 1000,
        "email": "sunwukong@gmail.com"
    },
    {
        "id": 2,
        "name": "唐僧",
        "age": 1200,
        "email": "tangseng@gmail.com"
    },
    {
        "id": 3,
        "name": "猪八戒",
        "age": 800,
        "email": "zhubajie@gmail.com"
    },
    {
        "id": 4,
        "name": "沙僧",
        "age": 900,
        "email": "shaseng@gmail.com"
    },
    {
        "id": 5,
        "name": "白龙马",
        "age": 500,
        "email": "bailongma@gmail.com"
    },
    {
        "id": 6,
        "name": "二郎神",
        "age": 1500,
        "email": "erlangshen@gmail.com"
    }
]

可以看到 「唐僧」 这个用户的 「年龄」 从 20 被修改为 1200。

六、删除记录

6.1 通过 id 删除记录

    /**
     * 删除记录 通过 id
     */
    @GetMapping("/deleteById")
    public List<User> deleteById(){

        // 根据 ID 删除
        userMapper.deleteById(4);

        // 查询删除后的数据
        List<User> list = userMapper.selectList(null);
        return list;
    }

输出:

[
    {
        "id": 1,
        "name": "孙悟空",
        "age": 1000,
        "email": "sunwukong@gmail.com"
    },
    {
        "id": 2,
        "name": "唐僧",
        "age": 1200,
        "email": "tangseng@gmail.com"
    },
    {
        "id": 3,
        "name": "猪八戒",
        "age": 800,
        "email": "zhubajie@gmail.com"
    },
    {
        "id": 5,
        "name": "白龙马",
        "age": 500,
        "email": "bailongma@gmail.com"
    },
    {
        "id": 6,
        "name": "二郎神",
        "age": 1500,
        "email": "erlangshen@gmail.com"
    }
]

可以看到 「沙僧」 这个用户的记录已经被删除掉。

6.2 通过条件构造器删除记录

    /**
     * 删除记录,通过条件构造器
     */
    @GetMapping("/deleteByWrapper")
    public List<User> deleteByWrapper(){
        QueryWrapper query = new QueryWrapper();
        query.eq("name", "孙悟空");

        userMapper.delete(query);
		
        // 查询删除孙悟空后的记录
        List<User> list = userMapper.selectList(null);
        return list;
    }

输出:

[
    {
        "id": 2,
        "name": "唐僧",
        "age": 1200,
        "email": "tangseng@gmail.com"
    },
    {
        "id": 3,
        "name": "猪八戒",
        "age": 800,
        "email": "zhubajie@gmail.com"
    },
    {
        "id": 5,
        "name": "白龙马",
        "age": 500,
        "email": "bailongma@gmail.com"
    },
    {
        "id": 6,
        "name": "二郎神",
        "age": 1500,
        "email": "erlangshen@gmail.com"
    }
]

可以看到,世间再无悟空了。

七、完整代码

/**
 * MyBatis-Plus 增删改查练习
 * @author: 云胡
 * @date: 2022-4-19
 */
@CrossOrigin
@RestController
public class MybatisPlusController {
	
    @Autowired
    private UserMapper userMapper;

    /**
     * 查询通过 id
     */
    @GetMapping("/selectById")
    public User selectById(){
        User user = userMapper.selectById(3);
        return user;
    }

    /**
     * 查询通过条件构造器
     */
    @GetMapping("/selectByWrapper")
    public List<User>  selectByWrapper(){
        QueryWrapper<User> queryWrapper = new QueryWrapper<>();
        queryWrapper
                .eq("age", 1000);

        // 查询多条数据
        List<User> list = userMapper.selectList(queryWrapper);
        return list;
    }


    /**
     * 添加记录
     */
    @GetMapping("/insert")
    public List<User> insert(){
        User user = new User();
        user.setId(6L);
        user.setAge(1500);
        user.setName("二郎神");
        user.setEmail("erlangshen@gmail.com");
        userMapper.insert(user);
		
		// 查询添加后的表
        List<User> list = userMapper.selectList(null);
        return list;
    }    

    /**
     * 修改记录
     */
    @GetMapping("/update")
    public List<User> update(){
        UpdateWrapper<User> updateWrapper = new UpdateWrapper<>();
        updateWrapper.eq("name","唐僧")
                     .set("age", 1200);

        Integer rows = userMapper.update(null, updateWrapper);

        // 查询修改后的数据
        List<User> list = userMapper.selectList(null);
        return list;
    }

    /**
     * 删除记录,通过条件构造器
     */
    @GetMapping("/deleteByWrapper")
    public List<User> deleteByWrapper(){
        QueryWrapper query = new QueryWrapper();
        query.eq("name", "孙悟空");

        userMapper.delete(query);
		
        // 查询删除孙悟空后的记录
        List<User> list = userMapper.selectList(null);
        return list;
    }

    /**
     * 删除记录 通过 id
     */
    @GetMapping("/deleteById")
    public List<User> deleteById(){

        // 根据 ID 删除
        userMapper.deleteById(4);

        // 查询
        List<User> list = userMapper.selectList(null);
        return list;
    }
}

八、参考资料

上一页Spring Boot 配置 MySQL 数据库下一页Java 后端将上传的 csv 文件转为 Excel xlsx 文件

最后更新于3年前

MyBatis-Plus CRUD 接口