业务层查询的数据量过大会有堆栈溢出风险,我们通常会分批次处理数据,为避免重复造轮子,写一个简单的工具类
package com.fanhua.common.core.utils;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import java.util.function.Function;
/**
* 分页处理工具类
*
* @author 陈军
* @date 2021/08/17
*/
public class PageUtil {
/**
* 自动分页处理,避免堆栈溢出
*
* @param pageNum 起始页 pageNum
* @param pageSize 数据长度
* @param function 业务处理函数
*/
public static void autoPage(Integer pageNum, Integer pageSize, Function<Page, Boolean> function){
Page<Object> page = PageHelper.startPage(pageNum, pageSize);
Boolean flag = function.apply(page);
if (flag && pageNum <= (page.getTotal() / pageSize)) {
autoPage((pageNum + 1) , pageSize, function);
}
}
}
1万+

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



