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;
	}
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值