springboot pagehelper分页插件封装
封装插件:
可自定义返回的Pages实体类参数
package com.wm.common;
import com.github.pagehelper.ISelect;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import lombok.Data;
import java.util.List;
/**
* 分页封装
* @param <T>
*/
@Data
public class Pages<T> {
private int pages;
private long total;
private int size;
private List<T> pageList;
/**
* 分页执行器
* @param select dao层对象
* @param pageNum 页码
* @param pageSize 每页数
* @return Page
* @param <T> dao层返回类型
*/
public static <T> Pages<T> execute(ISelect select, int pageNum, int pageSize) {
try (Page<T> page = PageHelper.startPage(pageNum,pageSize)) {
/*mapper对象操作*/
page.doSelectPage(select);
/*返回实体类*/
Pages<T> tPages = new Pages<>();
tPages.setPageList(page.getResult());
tPages.setPages(page.getPages());
tPages.setSize(page.getPageSize());
tPages.setTotal(page.getTotal());
return tPages;
}
}
}
使用方法:
返回对象为Pages<dao层实体类>
第一个参数:dao层对象
第二个参数:页码
第三个参数:每页数
public Pages<ChatMsgRecordPO> chatMsg(Integer scid, Integer rcid, String groupCode, Boolean isGroupMsg, Integer pageSize, Integer pageNum) {
return Pages.execute(() -> messageDao.chatMsg(scid, rcid) ,pageNum, pageSize);
}