我是靠谱客的博主 清新乌冬面,这篇文章主要介绍java中不使用pagehelper,进行手动分页,现在分享给大家,希望可以做个参考。

我们知道: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内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(87)

评论列表共有 0 条评论

立即
投稿
返回
顶部