pagehelper 分页插件使用说明
pom.xml:pageHelper坐标
<!--pageHelper坐标-->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.4.6</version>
</dependency>
分页结果
package com.weiyu.pojo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
/**
* 分页结果
* @param <T>
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public class PageBean<T> {
private Long total; //总条数
private List<T> rows; //当前页数据集合
}
xxxServiceImpl.java
public PageBean<User> getUserPageBean(QueryDto queryDto) {
// 分页逻辑直接作用于目标查询方法
PageHelper.startPage(
queryDto.getPageHelper().getPage(),
queryDto.getPageHelper().getSize()
);
// 这里不能有其他sql查询,须确保PageHelper.startPage方法最近的sql查询,就是目标查询方法
// 目标查询方法
List<User> userList = new ArrayList<>();
……
// 安全获取分页结果
if (userList instanceof Page<User> userPage) {
return new PageBean<>(userList.getTotal(), userList.getResult());
} else {
// 处理非分页情况(备用逻辑)
return new PageBean<>((long) userList.size(), userList);
}
}