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手动分页通用方法
最新推荐文章于 2024-05-07 22:22:20 发布
该代码实现了一个静态方法,利用PageHelper对给定的数据列表进行分页处理。它接受数据源、当前页数、每页大小和对象类型作为参数,通过Java流式处理筛选出指定类型的对象,然后进行跳过和限制操作来实现分页。同时,清理了分页缓存并设置了页数和总条数。

1746

被折叠的 条评论
为什么被折叠?



