我们知道:pageHelper是通过拦截SQL,在SQL后面加入limit的方式来实现自动分页。
有的时候我们需要对搜索出来的结果进行处理,但自动分页后返回的Page类型里只含有“每页显示数”(即pageSize)个元素。这个时候我们可以放弃pageHelper,使用以下方式进行手动分页。
直接返回Page类型:
import com.github.pagehelper.Page;
import com.test.entity.Entity;
public Page<Entity> doSearch(int pageNo, int pageSize){
//需要进行分页的结果list
List<Entity> list = entityDao.search();
//手动分页,new一个Page对象出来
Page<Entity> page = new Page<Entity>(pageNo, pageSize);
page.setTotal(list.size());
int startIndex = (pageNo - 1) * pageSize;
int endIndex = Math.min(startIndex + pageSize,list.size());
if(endIndex <= startIndex) {
startIndex = 0;
}
page.addAll(list.subList(startIndex,endIndex));
return page;
}
返回resultBean类型:
public ResultBean doSearch(String param){
//需要进行分页的结果list
List<Entity> list = entityDao.search();
ResultBean result = new ResultBean();
List resultList = new ArrayList<Entity>();
int record = list.size();
int totalPageNumber = 1;
int pageNo = 1;
int pageSize = 0;
//从前台传过来的参数里获取实际需要的页码数
pageNo = param.getPageNo();
pageSize = param.getRows();
totalPageNumber = (int) Math.ceil((double) record / (double) pageSize);
int startIndex = (pageNo - 1) * pageSize;
int endIndex = Math.min(startIndex + pageSize,list.size());
if(endIndex <= startIndex) {
startIndex = 0;
}
resultList.addAll(list.subList(startIndex,endIndex));
result.setStatus(true);
result.setPage(pageNo);
result.setRecord(record);
result.setTotal(totalPageNumber);
result.setData(resultList);
return result;
}
最后
以上就是清新乌冬面最近收集整理的关于java中不使用pagehelper,进行手动分页的全部内容,更多相关java中不使用pagehelper内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复