MyBatis-Plus 实现2种分页方法(QueryWrapper查询分页、SQL查询分页)

爱被打了一巴掌 2022-09-05 00:10 720阅读 0赞

1 MyBatisPlusConfig

MyBatisPlus配置类。

  1. package com.config;
  2. import com.baomidou.mybatisplus.annotation.DbType;
  3. import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
  4. import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
  5. import org.springframework.context.annotation.*;
  6. /**
  7. * MyBatisPlus配置类
  8. */
  9. @Configuration
  10. public class MyBatisPlusConfig {
  11. /**
  12. * MyBatisPlus拦截器(用于分页)
  13. */
  14. @Bean
  15. public MybatisPlusInterceptor paginationInterceptor() {
  16. MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
  17. //添加MySQL的分页拦截器
  18. interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
  19. return interceptor;
  20. }
  21. }

2 UserPagination

用户查询条件类。

  1. package com.entity;
  2. import lombok.Data;
  3. /**
  4. * 查询条件
  5. */
  6. @Data
  7. public class UserPagination {
  8. /**
  9. * 当前页号
  10. */
  11. private int currentPage;
  12. /**
  13. * 每页显示条数
  14. */
  15. private int pageSize;
  16. }

3 Mapper

3.1 UserMapper.java

  1. package com.mapper;
  2. import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  3. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  4. import com.entity.UserEntity;
  5. import com.entity.UserPagination;
  6. import org.apache.ibatis.annotations.Mapper;
  7. /**
  8. * 用户信息dao层
  9. */
  10. @Mapper
  11. public interface UserMapper extends BaseMapper<UserEntity> {
  12. /**
  13. * 获取用户信息(SQL查询分页)
  14. *
  15. * @param page 分页条件
  16. * @return
  17. */
  18. Page<UserEntity> getUserListBySQLPage(Page<UserEntity> page);
  19. }

3.2 UserMapper.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
  3. <mapper namespace="com.mapper.UserMapper">
  4. <select id="getUserListBySQLPage" resultType="com.entity.UserEntity">
  5. SELECT *
  6. from users
  7. </select>
  8. </mapper>

4 Service

4.1 UserService

  1. package com.service;
  2. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  3. import com.baomidou.mybatisplus.extension.service.IService;
  4. import com.entity.*;
  5. public interface UserService extends IService<UserEntity> {
  6. /**
  7. * 获取用户信息(QueryWrapper查询分页)
  8. *
  9. * @param pagination 查询条件
  10. * @return
  11. */
  12. Page<UserEntity> getUserListByQueryWrapperPage(UserPagination pagination);
  13. /**
  14. * 获取用户信息(SQL查询分页)
  15. *
  16. * @param pagination 查询条件
  17. * @return
  18. */
  19. Page<UserEntity> getUserListBySQLPage(UserPagination pagination);
  20. }

4.2 UserServiceImpl

  1. package com.service.impl;
  2. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  3. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  4. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  5. import com.entity.*;
  6. import com.mapper.UserMapper;
  7. import com.service.UserService;
  8. import org.springframework.beans.factory.annotation.Autowired;
  9. import org.springframework.stereotype.Service;
  10. @Service
  11. public class UserServiceImpl extends ServiceImpl<UserMapper, UserEntity> implements UserService {
  12. @Autowired
  13. private UserMapper userMapper;
  14. /**
  15. * 获取用户信息(QueryWrapper查询分页)
  16. *
  17. * @param pagination 查询条件
  18. * @return
  19. */
  20. public Page<UserEntity> getUserListByQueryWrapperPage(UserPagination pagination) {
  21. QueryWrapper<UserEntity> queryWrapper = new QueryWrapper<>();
  22. Page<UserEntity> page = new Page<>(pagination.getCurrentPage(), pagination.getPageSize());
  23. return this.page(page, queryWrapper);
  24. }
  25. /**
  26. * 获取用户信息(SQL查询分页)
  27. *
  28. * @param pagination 查询条件
  29. * @return
  30. */
  31. @Override
  32. public Page<UserEntity> getUserListBySQLPage(UserPagination pagination) {
  33. Page<UserEntity> page = new Page<>(pagination.getCurrentPage(), pagination.getPageSize());
  34. return userMapper.getUserListBySQLPage(page);
  35. }
  36. }

5 UserController

调试代码。

  1. package com.controller;
  2. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  3. import com.entity.*;
  4. import com.service.UserService;
  5. import org.springframework.beans.factory.annotation.Autowired;
  6. import org.springframework.web.bind.annotation.*;
  7. @RestController
  8. public class UserController {
  9. @Autowired
  10. private UserService userService;
  11. /**
  12. * 获取用户信息(QueryWrapper查询分页)
  13. *
  14. * @return
  15. */
  16. @GetMapping("/getUserListByQueryWrapperPage")
  17. public Page<UserEntity> getUserListByQueryWrapperPage(UserPagination pagination) {
  18. return userService.getUserListByQueryWrapperPage(pagination);
  19. }
  20. /**
  21. * 获取用户信息(SQL查询分页)
  22. *
  23. * @return
  24. */
  25. @GetMapping("/getUserListBySQLPage")
  26. public Page<UserEntity> getUserListBySQLPage(UserPagination pagination) {
  27. return userService.getUserListBySQLPage(pagination);
  28. }
  29. }

6 调试结果

6.1 QueryWrapper查询分页

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM4OTc0NjM4_size_16_color_FFFFFF_t_70

6.2 SQL查询分页

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM4OTc0NjM4_size_16_color_FFFFFF_t_70 1

注:

更多MyBatis-Plus的配置请查看以下博客。

Spring Boot 配置MyBatis-Plus(实现查询、新增、更新、删除)

发表评论

表情:
评论列表 (有 0 条评论,720人围观)

还没有评论,来说两句吧...

相关阅读

    相关 sql查询

    文章目录 分页查询 oracle中分页查询 mysql中分页查询 分页查询 > 分页查询在绝大多数项目中都会用到。如