您的位置:

使用Spring Boot PageHelper进行分页

一、PageHelper介绍

PageHelper是一个开源的Mybatis分页插件,可以实现物理分页,支持多种数据库,包括Oracle、Mysql、SqlServer等。使用PageHelper可以轻松地在Spring Boot中进行分页操作。

二、在Spring Boot中使用PageHelper

首先,我们需要添加PageHelper依赖:


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

然后,在application.properties文件中配置分页插件:


#配置分页插件
pagehelper.helperDialect=mysql
pagehelper.reasonable=true
pagehelper.supportMethodsArguments=true
pagehelper.params=count=countSql
pagehelper.autoRuntimeDialect=true

其中,helperDialect表示分页插件的方言,比如Mysql、SqlServer;reasonable设置为true表示启用合理化分页;supportMethodsArguments表示支持方法参数;params=count=countSql表示通过countSql查询总数;autoRuntimeDialect表示自动根据当前环境选择方言。

三、在Spring Boot中进行分页操作

在需要进行分页的方法中使用PageHelper.startPage方法,即可实现分页操作:


//获取第1页,10条内容,默认查询总数count
PageHelper.startPage(1, 10);
//紧跟着的第一个查询会被分页
List<User> list = userMapper.selectUsers();
//用PageInfo对结果进行包装
PageInfo<User> pageInfo = new PageInfo<User>(list);
//测试PageInfo全部属性
//PageInfo包含了非常全面的分页属性
assertEquals(1, pageInfo.getPageNum());
assertEquals(10, pageInfo.getPageSize());
assertEquals(1, pageInfo.getStartRow());
assertEquals(10, pageInfo.getEndRow());
assertEquals(183, pageInfo.getTotal());
assertEquals(19, pageInfo.getPages());
assertEquals(1, pageInfo.getFirstPage());
assertEquals(8, pageInfo.getLastPage());
assertEquals(true, pageInfo.isHasPreviousPage());
assertEquals(true, pageInfo.isHasNextPage());
assertEquals(false, pageInfo.isIsFirstPage());
assertEquals(false, pageInfo.isIsLastPage());

其中,startPage方法的参数表示需要显示的页面和每页显示的记录数。selectUsers方法是查询所有用户的方法。可以通过PageInfo对象获取到所有分页相关的属性,比如当前页、总页数、总记录数、是否有前一页、是否有后一页等。

四、结论

使用Spring Boot PageHelper插件可以轻松实现分页操作,方便快捷。在实际开发中,我们可以根据业务需求灵活使用。当然,还有其他的分页插件可以使用,可以根据具体情况选择和比较。