Page类
public Page(Integer currentPage, Integer pageSize, Long total, List<?> dataList) {
this.page = currentPage;
this.pageSize = pageSize;
this.total = total == null ? 0 : total.intValue();
this.dataList = dataList;
}
这里有四参构造,可以看到
page 代表 当前页 一般1
pageSize 代表 页大小,就是1页显示几条数据 给个8
total 代表 一共多少条数据这里 给个50
dataList 数据集
构造一个Page对象
1, 先准备好数据集findList
2, 构建pageInfo
3, 构建page
着重看一下pageInfo,它的构造,以及它有什么用?
构造: 用数据集直接构造即可
用处: 它可以为构建page时,提供total,和List
public Page findBaIntoBoundDetail4Page(BaIntoBoundDetailQuery param) {
if(param == null){
return new Page(param.getCurrentPage(), param.getPageSize(), 0L, null);
}
Example example = new Example(BaIntoBoundDetail.class);
Example.Criteria cri = example.createCriteria();
// 设置查询条件
BaIntoBoundDetailServiceUtil.initFindBaIntoBoundDetailParam(cri, param);
// 排序
example.setOrderByClause("id desc");
// 设置分页
PageHelper.startPage(param.getCurrentPage(), param.getPageSize());
// 查询
List<BaIntoBoundDetail> findList = baIntoBoundDetailMapper.selectByExample(example);
// 如果需要特殊处理返回结果,可在此处重新封装
PageInfo<BaIntoBoundDetail> pageInfo = new PageInfo<>(findList);
return new Page(param.getCurrentPage(), param.getPageSize(), pageInfo.getTotal(), pageInfo.getList());
}
看下PageInfo的处理:
经过两层super之后:
public PageSerializable(List<T> list) {
this.list = list;
if (list instanceof Page) {
this.total = ((Page)list).getTotal();
} else {
this.total = (long)list.size();
}
}
所以构造Page时,可以用 pageInfo.getTotal和pageInfo.getList来当作参数。