不经过Dao层无法使用pageHeper,Jave自定义分页.
一, 目的:
我们在实际项目中,如果存在返回的数据没有经过数据,从其他系统获取,在前端又需要分页展示时.此时没有经过mybatis层,
所以无法使用分页插件,此时可以自定义分页插件.
二, 前提:
mybatis, java编译环境.
三, 过程:
自定义分页工具,可以自行copy:
dateList表示需要分页的数据, pageNum表示第几页, pageSize表示一页展示的数量.
public <T> PageInfo<T> defPageHelper(List<T> dateList, int pageNum, int pageSize){
if(pageNum !=1 && !CollectionUtils.isEmpty(dateList) && dateList.size() <=pageSize) {
pageNum = 1;//不足一页则返回一页
}
ArrayList<T> arrayList = new ArrayList<>();
int startIndex = (pageNum - 1) *pageSize; //分页开始节点
int endIndex = pageNum * pageSize - 1; //分页结束节点
if (endIndex >= dateList.size()) {
endIndex = dateList.size();
}
int i = 0;
for (T t : dateList) {
if (i >= startIndex && i <= endIndex){
arrayList.add(t);
}
i ++;
}
PageInfo<T> dateInfo = new PageInfo<>(arrayList);
if (dateList.size() % pageSize != 0){
dateInfo.setPages((dateList.size() / pageSize) +1);
} else {
dateInfo.setPages(dateList.size() / pageSize);
}
dateInfo.setPageNum(pageNum);
dateInfo.setPageSize(pageSize);
dateInfo.setTotal(dateList.size());
return dateInfo;
}