一、概述

之前已经使用 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

二、查询

2.1 通过 id 查询

  1. /**
  2. * 查询通过 id
  3. */
  4. @GetMapping("/selectById")
  5. public User selectById(){
  6. User user = userMapper.selectById(3);
  7. return user;
  8. }

输出:

  1. {
  2. "id": 3,
  3. "name": "猪八戒",
  4. "age": 800,
  5. "email": "zhubajie@gmail.com"
  6. }

2.2 通过条件构造器查询

  1. /**
  2. * 查询通过条件构造器
  3. */
  4. @GetMapping("/selectByWrapper")
  5. public List<User> selectByWrapper(){
  6. QueryWrapper<User> queryWrapper = new QueryWrapper<>();
  7. queryWrapper
  8. .eq("age", 1000);
  9. // 查询多条数据
  10. List<User> list = userMapper.selectList(queryWrapper);
  11. return list;
  12. }

输出:

  1. [
  2. {
  3. "id": 1,
  4. "name": "孙悟空",
  5. "age": 1000,
  6. "email": "sunwukong@gmail.com"
  7. }
  8. ]

三、插入记录

  1. /**
  2. * 添加记录
  3. */
  4. @GetMapping("/insert")
  5. public List<User> insert(){
  6. User user = new User();
  7. user.setId(6L);
  8. user.setAge(1500);
  9. user.setName("二郎神");
  10. user.setEmail("erlangshen@gmail.com");
  11. userMapper.insert(user);
  12. // 查询添加后的表
  13. List<User> list = userMapper.selectList(null);
  14. return list;
  15. }

输出:

  1. [
  2. {
  3. "id": 1,
  4. "name": "孙悟空",
  5. "age": 1000,
  6. "email": "sunwukong@gmail.com"
  7. },
  8. {
  9. "id": 2,
  10. "name": "唐僧",
  11. "age": 20,
  12. "email": "tangseng@gmail.com"
  13. },
  14. {
  15. "id": 3,
  16. "name": "猪八戒",
  17. "age": 800,
  18. "email": "zhubajie@gmail.com"
  19. },
  20. {
  21. "id": 4,
  22. "name": "沙僧",
  23. "age": 900,
  24. "email": "shaseng@gmail.com"
  25. },
  26. {
  27. "id": 5,
  28. "name": "白龙马",
  29. "age": 500,
  30. "email": "bailongma@gmail.com"
  31. },
  32. {
  33. "id": 6,
  34. "name": "二郎神",
  35. "age": 1500,
  36. "email": "erlangshen@gmail.com"
  37. }
  38. ]

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

四、修改记录

  1. /**
  2. * 修改记录
  3. */
  4. @GetMapping("/update")
  5. public List<User> update(){
  6. UpdateWrapper<User> updateWrapper = new UpdateWrapper<>();
  7. updateWrapper.eq("name","唐僧")
  8. .set("age", 1200);
  9. Integer rows = userMapper.update(null, updateWrapper);
  10. // 查询修改后的数据
  11. List<User> list = userMapper.selectList(null);
  12. return list;
  13. }

输出:

  1. [
  2. {
  3. "id": 1,
  4. "name": "孙悟空",
  5. "age": 1000,
  6. "email": "sunwukong@gmail.com"
  7. },
  8. {
  9. "id": 2,
  10. "name": "唐僧",
  11. "age": 1200,
  12. "email": "tangseng@gmail.com"
  13. },
  14. {
  15. "id": 3,
  16. "name": "猪八戒",
  17. "age": 800,
  18. "email": "zhubajie@gmail.com"
  19. },
  20. {
  21. "id": 4,
  22. "name": "沙僧",
  23. "age": 900,
  24. "email": "shaseng@gmail.com"
  25. },
  26. {
  27. "id": 5,
  28. "name": "白龙马",
  29. "age": 500,
  30. "email": "bailongma@gmail.com"
  31. },
  32. {
  33. "id": 6,
  34. "name": "二郎神",
  35. "age": 1500,
  36. "email": "erlangshen@gmail.com"
  37. }
  38. ]

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

五、删除记录

5.1 通过 id 删除记录

  1. /**
  2. * 删除记录 通过 id
  3. */
  4. @GetMapping("/deleteById")
  5. public List<User> deleteById(){
  6. // 根据 ID 删除
  7. userMapper.deleteById(4);
  8. // 查询删除后的数据
  9. List<User> list = userMapper.selectList(null);
  10. return list;
  11. }

输出:

  1. [
  2. {
  3. "id": 1,
  4. "name": "孙悟空",
  5. "age": 1000,
  6. "email": "sunwukong@gmail.com"
  7. },
  8. {
  9. "id": 2,
  10. "name": "唐僧",
  11. "age": 1200,
  12. "email": "tangseng@gmail.com"
  13. },
  14. {
  15. "id": 3,
  16. "name": "猪八戒",
  17. "age": 800,
  18. "email": "zhubajie@gmail.com"
  19. },
  20. {
  21. "id": 5,
  22. "name": "白龙马",
  23. "age": 500,
  24. "email": "bailongma@gmail.com"
  25. },
  26. {
  27. "id": 6,
  28. "name": "二郎神",
  29. "age": 1500,
  30. "email": "erlangshen@gmail.com"
  31. }
  32. ]

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

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

  1. /**
  2. * 删除记录,通过条件构造器
  3. */
  4. @GetMapping("/deleteByWrapper")
  5. public List<User> deleteByWrapper(){
  6. QueryWrapper query = new QueryWrapper();
  7. query.eq("name", "孙悟空");
  8. userMapper.delete(query);
  9. // 查询删除孙悟空后的记录
  10. List<User> list = userMapper.selectList(null);
  11. return list;
  12. }

输出:

  1. [
  2. {
  3. "id": 2,
  4. "name": "唐僧",
  5. "age": 1200,
  6. "email": "tangseng@gmail.com"
  7. },
  8. {
  9. "id": 3,
  10. "name": "猪八戒",
  11. "age": 800,
  12. "email": "zhubajie@gmail.com"
  13. },
  14. {
  15. "id": 5,
  16. "name": "白龙马",
  17. "age": 500,
  18. "email": "bailongma@gmail.com"
  19. },
  20. {
  21. "id": 6,
  22. "name": "二郎神",
  23. "age": 1500,
  24. "email": "erlangshen@gmail.com"
  25. }
  26. ]

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

六、完整代码

  1. /**
  2. * MyBatis-Plus 增删改查练习
  3. * @author: 云胡
  4. * @date: 2022-4-19
  5. */
  6. @CrossOrigin
  7. @RestController
  8. public class MybatisPlusController {
  9. @Autowired
  10. private UserMapper userMapper;
  11. /**
  12. * 查询通过 id
  13. */
  14. @GetMapping("/selectById")
  15. public User selectById(){
  16. User user = userMapper.selectById(3);
  17. return user;
  18. }
  19. /**
  20. * 查询通过条件构造器
  21. */
  22. @GetMapping("/selectByWrapper")
  23. public List<User> selectByWrapper(){
  24. QueryWrapper<User> queryWrapper = new QueryWrapper<>();
  25. queryWrapper
  26. .eq("age", 1000);
  27. // 查询多条数据
  28. List<User> list = userMapper.selectList(queryWrapper);
  29. return list;
  30. }
  31. /**
  32. * 添加记录
  33. */
  34. @GetMapping("/insert")
  35. public List<User> insert(){
  36. User user = new User();
  37. user.setId(6L);
  38. user.setAge(1500);
  39. user.setName("二郎神");
  40. user.setEmail("erlangshen@gmail.com");
  41. userMapper.insert(user);
  42. // 查询添加后的表
  43. List<User> list = userMapper.selectList(null);
  44. return list;
  45. }
  46. /**
  47. * 修改记录
  48. */
  49. @GetMapping("/update")
  50. public List<User> update(){
  51. UpdateWrapper<User> updateWrapper = new UpdateWrapper<>();
  52. updateWrapper.eq("name","唐僧")
  53. .set("age", 1200);
  54. Integer rows = userMapper.update(null, updateWrapper);
  55. // 查询修改后的数据
  56. List<User> list = userMapper.selectList(null);
  57. return list;
  58. }
  59. /**
  60. * 删除记录,通过条件构造器
  61. */
  62. @GetMapping("/deleteByWrapper")
  63. public List<User> deleteByWrapper(){
  64. QueryWrapper query = new QueryWrapper();
  65. query.eq("name", "孙悟空");
  66. userMapper.delete(query);
  67. // 查询删除孙悟空后的记录
  68. List<User> list = userMapper.selectList(null);
  69. return list;
  70. }
  71. /**
  72. * 删除记录 通过 id
  73. */
  74. @GetMapping("/deleteById")
  75. public List<User> deleteById(){
  76. // 根据 ID 删除
  77. userMapper.deleteById(4);
  78. // 查询
  79. List<User> list = userMapper.selectList(null);
  80. return list;
  81. }
  82. }

七、参考资料

MyBatis-Plus CRUD 接口