import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.SqlUtil;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
public class PageUtil {
/**
*
* @param objList 数据源集合
* @param page 当前页数
* @param pageSize 总条数
* @param c 类型字节码
* @return List
*/
public static <T> List<T> manualPage(List<?> objList, int page, int pageSize, Class<?> c) {
try {
List<T> resultList = new ArrayList<>();
if (c != null) {
for (Object o : objList) {
if (c.isInstance(o)) {
resultList.add((T) o);
}
}
}
int total = resultList.size();
// skip跳记录和limit限制显示记录数
List<T> collect = resultList.stream().skip((page - 1) * pageSize).limit(pageSize).collect(Collectors.toList());
// 页数
int pageSum = total % pageSize == 0 ? total / pageSize : total / pageSize + 1;
Page<T> p = PageHelper.startPage(page, pageSize);
List<T> result = p.getResult();
result.addAll(collect);
p.setPages(pageSum);
p.setTotal(total);
p.setPageSize(pageSize);
// 清除分页缓存
SqlUtil.clearLocalPage();
return result;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}
PageHelper手动分页通用方法
最新推荐文章于 2023-09-28 17:54:58 发布