您的位置:首页 > 其它

【分页查询】Page如何做到分页查询

2017-08-23 20:07 225 查看
分页查询是一个非常重要的知识点;

这里的代码不能直接拷贝运行,这里讲的只是个思路;

public PageModel<UserList > selectCheckList (UserList  userList) throws Exception{   PageHelper.startPage(searchVo.getPageIndex(),searchVo.getPageSize(),searchVo.getOrderBy());
PageModel<UserList> pageModel = new PageModel<>();
Page pageList = new Page();
pageList.addAll(UserLists);
pageModel.setPageIndex(searchVo.getPageIndex());
pageModel.setPageSize(searchVo.getPageSize());
pageModel.setTotal(Long.valueOf(""+requestContext.globalData("rowsCount")));
pageModel.setData(pageList.getResult());
pageModel.setPageCount(pageList.getPages());
return pageModel ;
}


1.gitHub上有开源的Page和PageHelper:

import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;


2.我们需要一个PageModel泛型,这里的的
PageModel<UserList>
里面,要放我们要分页的对象,是一个集合,就是每一行(这里的每一行,我们作一个对象处理);

3.这里的pageModel ,需要设置页码(pageIndex),每页的数据总计条数(pageSize)和所以数据条数(Total);比如,我有50个人的个人信息,这里一个人的个人信息就是一个对象;Total就等于50;每页我只显示20条,那么PageSize就等于20;pageIndex从1变化为3;

4.
Page pageList = new Page();
这里的Page是作为一个容器,用来装载我的所有数据对象,比如说,我50个人的信息,组成一个
List<个人信息>
,我要把
List<个人信息>
都放到pageList里面,最后,在套在PageMode中;这样模型和数据都是分开的,比较清晰,就像沙子和模具(一个盒子,即pageModel );沙子是沙子,模具是模具,不会拖泥带水;

5.
pageModel .setData(pageList.getResult());
这个方法就是沙子(pageList)和模具(pageModel )之间关系的一个方法,把沙子放到模具中,setData()这个方法,就是放沙子到模具的过程;

6.
pageList.addAll(UserLists);
是把散的沙子都捧在手里,就先你在海边,海边有许多沙子,你要用手把沙子(50人的信息),先放在手里;这个方法就是把我们的分页的对象(50人的个人信息)先放在pageList中,然后pageList再把这些打包好的信息,放到模具(PageModel)中;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: