Spring Boot 使用 PageHelper 实现分页查询

PageHelper 是一个 MyBatis 的分页插件,可以轻松实现分页功能。本文将介绍如何在 Spring Boot 中使用 PageHelper 实现分页查询。

1. 引入依赖

pom.xml 文件中添加 PageHelper 依赖:

<dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper-spring-boot-starter</artifactId>
    <version>1.4.1</version>
</dependency>

2. 配置 PageHelper

application.propertiesapplication.yml 文件中配置 PageHelper:

pagehelper.helperDialect=mysql
pagehelper.reasonable=true
pagehelper.supportMethodsArgs=true
pagehelper.params=pageNum=page,pageSize=rows

3. 代码示例

以下是一个使用 PageHelper 实现分页查询的示例代码:

@RequestMapping(value = "/queryCondition")
@ResponseBody
public PageInfo<User> queryCondition(@RequestParam(value="pageNum",defaultValue="1")int pageNum,
                                      @RequestParam(value="pageSize",defaultValue="5")int pageSize,
                                      String email,String nickName,String createDate,Integer userState){
    PageHelper.startPage(pageNum, pageSize);
    List<User> userList = userService.queryUserByCondition(email,nickName,createDate,userState);
    PageInfo<User> pageInfo = new PageInfo<>(userList);
    return pageInfo;
}

代码解释:

  • PageHelper.startPage(pageNum, pageSize):开启 PageHelper 分页功能,设置当前页码和每页大小。
  • userService.queryUserByCondition(email,nickName,createDate,userState):查询用户列表,根据条件过滤。
  • PageInfo<User> pageInfo = new PageInfo<>(userList):将查询结果封装到 PageInfo 对象中,该对象包含了分页信息和数据列表。
  • return pageInfo:返回 PageInfo 对象,前端可以根据该对象进行展示和操作。

4. PageInfo 构造函数

PageInfo 类提供了多个构造函数,用于不同的使用场景。以下列出部分常用构造函数:

public PageInfo(List<T> list) {
    this(list, DEFAULT_NAVIGATE_PAGES);
}

public PageInfo(List<T> list, int navigatePages) {
    this(list, navigatePages, DEFAULT_PAGE_SIZE);
}

public PageInfo(List<T> list, int navigatePages, int pageSize) {
    this(list, navigatePages, pageSize, true);
}

public PageInfo(List<T> list, int navigatePages, int pageSize, boolean count) {
    if (list instanceof Page) {
        Page<T> page = (Page<T>)list;
        this.pageNum = page.getPageNum();
        this.pageSize = page.getPageSize();

        this.pages = page.getPages();
        this.size = page.size();
        this.total = page.getTotal();
        this.list = page;
        if (count) {
            this.startRow = page.getStartRow();
            this.endRow = page.getEndRow();
        }
    } else {
        this.pageNum = 1;
        this.pageSize = pageSize;

        this.pages = 0;
        this.size = 0;
        this.total = 0L;
        this.list = list;
    }
    this.navigatePages = navigatePages;

    calcNavigatepageNums();

    calcPage();
}

5. 总结

PageHelper 是一个非常方便的分页插件,可以轻松实现分页功能。本文介绍了如何在 Spring Boot 中使用 PageHelper 实现分页查询,并提供了代码示例和详细解释。希望本文能够帮助你快速上手 PageHelper,实现你的分页需求。

Spring Boot 使用 PageHelper 实现分页查询

原文地址: https://www.cveoy.top/t/topic/mO3o 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录