数据层

1、使用lombok @Data快速定义实体类

  1. package com.tj.domain;
  2. import lombok.Data;
  3. //实体类
  4. @Data
  5. public class Users {
  6. private Integer id;
  7. private Integer isuse;
  8. private String user_id;
  9. private String password;
  10. private String user_name;
  11. }

2、继承MP的BaseMapper的方法类,可以自定义其他的接口方法

  1. package com.tj.dao;
  2. import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  3. import com.tj.domain.Users;
  4. import org.apache.ibatis.annotations.Mapper;
  5. import org.springframework.stereotype.Repository;
  6. @Mapper
  7. @Repository
  8. public interface UsersDao extends BaseMapper<Users> {
  9. //除了继承,还可以自定义接口,名称不要和继承相同否则会覆盖
  10. }

业务层

1、继承MP的通用接口IService的方法

  1. package com.tj.service;
  2. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  3. import com.baomidou.mybatisplus.core.metadata.IPage;
  4. import com.baomidou.mybatisplus.extension.service.IService;
  5. import com.tj.domain.Users;
  6. public interface IUserService extends IService<Users> {
  7. IPage<Users> getPage(int pagenum, int pagesize, Users user);
  8. }

2、extends 通用实现类ServiceImpl implements IUserService实现类

  1. package com.tj.service.impl;
  2. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  3. import com.baomidou.mybatisplus.core.metadata.IPage;
  4. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  5. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  6. import com.tj.dao.UsersDao;
  7. import com.tj.domain.Users;
  8. import com.tj.service.IUserService;
  9. import org.apache.logging.log4j.util.Strings;
  10. import org.springframework.beans.factory.annotation.Autowired;
  11. import org.springframework.stereotype.Service;
  12. @Service
  13. public class UserServiceImpl extends ServiceImpl<UsersDao, Users> implements IUserService {
  14. @Autowired
  15. private UsersDao usersDao;
  16. //分页查询
  17. @Override
  18. public IPage<Users> getPage(int pagenum, int pagesize, Users user) {
  19. //查询条件
  20. LambdaQueryWrapper<Users> lqw = new LambdaQueryWrapper<>();
  21. //user_id
  22. lqw.like(Strings.isNotEmpty(user.getUser_id()), Users::getUser_id, user.getUser_id());
  23. //and id
  24. lqw.like(user.getId() != null, Users::getId, user.getId());
  25. //and user_and
  26. lqw.like(Strings.isNotEmpty(user.getUser_name()), Users::getUser_name, user.getUser_name());
  27. IPage page = new Page(pagenum, pagesize);
  28. usersDao.selectPage(page, lqw);
  29. return page;
  30. }
  31. }

3、测试业务层

  1. package com.tj.dao.service;
  2. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  3. import com.baomidou.mybatisplus.core.metadata.IPage;
  4. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  5. import com.tj.domain.Users;
  6. import com.tj.service.IUserService;
  7. import org.junit.jupiter.api.Test;
  8. import org.springframework.beans.factory.annotation.Autowired;
  9. import org.springframework.boot.test.context.SpringBootTest;
  10. import java.util.List;
  11. @SpringBootTest
  12. public class UserServiceTest {
  13. @Autowired
  14. private IUserService userService;
  15. @Test
  16. void testGetById() {
  17. System.out.println(userService.getById(2));
  18. }
  19. @Test
  20. void testSave() { //新增
  21. Users user = new Users();
  22. user.setId(10);
  23. user.setIsuse(0);
  24. user.setUser_id("ceshi");
  25. user.setUser_name("测试");
  26. user.setPassword("87976494d664ds46dfsd6f4sfsfsd");
  27. userService.saveOrUpdate(user);
  28. }
  29. @Test
  30. void testModify() { //修改
  31. Users user = new Users();
  32. user.setId(10);
  33. user.setIsuse(0);
  34. user.setUser_id("xiug");
  35. user.setUser_name("测试xiugai");
  36. user.setPassword("87976494d664ds46dfsd6f4sfsfsd");
  37. userService.updateById(user);
  38. }
  39. @Test
  40. void testDelete() { //删除
  41. userService.removeById(10);
  42. }
  43. @Test
  44. void testGetPage() { //分页查询
  45. IPage<Users> page = new Page<Users>(3, 5);
  46. userService.page(page,null);
  47. long current = page.getCurrent();//当前页
  48. long pages = page.getPages();//总页数
  49. long size = page.getSize();//每页显示几条
  50. long total = page.getTotal();//总条数
  51. List records = page.getRecords();// 分页对象记录列表
  52. }
  53. @Test
  54. void testGetBy() { //按条件查询
  55. LambdaQueryWrapper<Users> lqw = new LambdaQueryWrapper<>();
  56. String name = "1";
  57. String name2 = "2";
  58. String name3 = "3";
  59. lqw.like(name3 != null, Users::getUser_name, name3);
  60. lqw.and(e -> {
  61. e.like(name != null, Users::getUser_name, name).or();
  62. e.like(name2 != null, Users::getUser_name, name2);
  63. });
  64. //等于 WHERE (user_name LIKE ? AND (user_name LIKE ? OR user_name LIKE ?))
  65. List<Users> userList = userService.list(lqw);
  66. }
  67. }