天天看点

SpringBoot项目引入分页助手插件

前言:SpringCloud的分布式项目也同理在Service层所在项目中进行如下操作

在业务层(Service层)中引入如下依赖:

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

修改配置文件application.properties:

pagehelper.helperDialect.reasonable=true
pagehelper.helperDialect.supportMethodsArguments=true
pagehelper.helperDialect.params:count=countSql
           

配置说明:

  • reasonable:分页合理化参数,默认值为false。当该参数设置为 true 时,pageNum<=0 时会查询第一页,pageNum>pages(超过总数时),会查询最后一页。默认false 时,直接根据参数进行查询。
  • supportMethodsArguments:支持通过 Mapper 接口参数来传递分页参数,默认值false,分页插件会从查询方法的参数值中,自动根据上面 params 配置的字段中取值,查找到合适的值时就会自动分页。 使用方法可以参考测试代码中的 com.github.pagehelper.test.basic 包下的 ArgumentsMapTest 和 ArgumentsObjTest。
  • params:为了支持startPage(Object params)方法,增加了该参数来配置参数映射,用于从对象中根据属性名取值, 可以配置 pageNum,pageSize,count,pageSizeZero,reasonable,不配置映射的用默认值, 默认值为pageNum=pageNum;pageSize=pageSize;count=countSql;reasonable=reasonable;pageSizeZero=pageSizeZero。

在控制器中使用分页助手

@RequestMapping("/test")
public void test(Integer page, Integer pageSize) {
	// 设置分页信息,参数一代表从第几页开始查询,参数二代表每页查询的记录数
	PageHelper.startPage(page, pageSize);
	List<TestItem> list = testService.findTestItem();
	PageInfo<TestItem> pageInfo = new PageInfo<TestItem>(list);
	for (TestItem testItem : pageInfo.getList()) {
		System.out.println(testItem);
	}
	System.out.println("当前页:" + pageInfo.getPageNum());
	System.out.println("每页显示记录数:" + pageInfo.getPageSize());
	System.out.println("总页数:" + pageInfo.getPages());
}
           

前端返回结果大致如下:

SpringBoot项目引入分页助手插件