jar引入
代码示例
<!-- pagehelper 分页插件 -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.4</version>
</dependency>
PageUtil工具包
代码示例
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest;
/**
* 分页工具类
* @author gxl
*/
public class PageUtil {
protected static final ThreadLocal<MybatisPage> threadLocal = new ThreadLocal();
public PageUtil() {
}
/**
* 分页
* @param page 当前页
* @param pageSize 每页显示条数
*/
public static void startPage(Integer page,Integer pageSize) {
ServletRequestAttributes requestAttributes = (ServletRequestAttributes)RequestContextHolder.getRequestAttributes();
//获取请求信息
HttpServletRequest request = requestAttributes.getRequest();
//获取请求头中当前页
// Integer page = Convert.toInt(request.getParameter("page"));
//获取请求头中每页显示条数
// Integer pageSize = Convert.toInt(request.getParameter("pageSize"));
if (StringUtils.isNotNull(page) && StringUtils.isNotNull(pageSize)) {
MybatisPage mybatisPage = new MybatisPage();
mybatisPage.setPage(page);
mybatisPage.setPageSize(pageSize);
threadLocal.set(mybatisPage);
} else {
throw new RuntimeException("分页参数为空");
}
}
}
/**
* 封装分页参数
*/
class MybatisPage {
private Integer page;
private Integer pageSize;
private String countSql;
public MybatisPage() {
}
public Integer getPage() {
return this.page;
}
public void setPage(Integer page) {
this.page = page;
}
public Integer getPageSize() {
return this.pageSize;
}
public void setPageSize(Integer pageSize) {
this.pageSize = pageSize;
}
public String getCountSql() {
return this.countSql;
}
public void setCountSql(String countSql) {
this.countSql = countSql;
}
}
PageResult返回封装参数
代码示例
import com.github.pagehelper.Page;
/**
* 封装分页返回
* @author gxl
* @param <T>
*/
public class PageResult<T> {
private Integer respCode;
private String respDesc;
private Integer pages = 0;
private Integer page = 0;
private Integer pageSize = 10;
private Integer total = 0;
private T result;
public Integer getRespCode() {
return respCode;
}
public void setRespCode(Integer respCode) {
this.respCode = respCode;
}
public String getRespDesc() {
return respDesc;
}
public void setRespDesc(String respDesc) {
this.respDesc = respDesc;
}
public Integer getPages() {
return this.pages;
}
public void setPages(Integer pages) {
this.pages = pages;
}
public Integer getPage() {
return this.page;
}
public void setPage(Integer page) {
this.page = page;
}
public Integer getPageSize() {
return this.pageSize;
}
public void setPageSize(Integer pageSize) {
this.pageSize = pageSize;
}
public Integer getTotal() {
return this.total;
}
public void setTotal(Integer total) {
this.total = total;
}
public T getResult() {
return result;
}
public void setResult(T result) {
this.result = result;
}
public PageResult() {
}
public PageResult(Integer respCode, String respDesc, T result, Integer page, Integer pageSize, Integer total) {
this.respCode = respCode;
this.respDesc = respDesc;
this.page = page;
this.pageSize = pageSize;
this.total = total;
this.result = result;
if (total > 0) {
this.setPages(total % pageSize != 0 ? total / pageSize + 1 : total / pageSize);
}
}
public PageResult(String respDesc) {
this.respCode = -1;
this.respDesc = respDesc;
}
public static <T> PageResult<T> success(T data) {
Page<T> page = (Page)data;
return new PageResult(0, "请求成功", data, page.getPageNum(), page.getPageSize(), (int)page.getTotal());
}
public static PageResult error(String msg) {
return new PageResult(msg);
}
}
调用示例
代码示例
public static void main(String[] args) {
//分页调用
PageUtil.startPage(page,pageSize);
//数据集合
List data = new ArrayList<>();
//返回结果
return PageResult.success(data);
}