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

我们知道:pageHelper是通过拦截SQL,在SQL后面加入limit的方式来实现自动分页。

有的时候我们需要对搜索出来的结果进行处理,但自动分页后返回的Page类型里只含有“每页显示数”(即pageSize)个元素。这个时候我们可以放弃pageHelper,使用以下方式进行手动分页。

直接返回Page类型:

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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类型:

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
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内容请搜索靠谱客的其他文章。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部