工具类直接复制创建
package com.celix.common.utils;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageInfo;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class PageUtils {
/**
*
* @param datas 数据
* @param pageSize 每页显示条数
* @param pageIndex 页码
* @param <T>
* @return
*/
public static <T> Map<String,Object> pageMap(List<T> datas, int pageSize, int pageIndex){
HashMap<String, Object> map = new HashMap<>();
int size = datas.size();//总条数
//总页数
int totlePage = size / pageSize;//取整
int a = size % pageSize;//取余
if (a > 0) {
totlePage += 1;
}
map.put("pages", totlePage);//总页数
map.put("pageNum", pageIndex);//页码
map.put("pageSize", pageSize);//每页显示条数
map.put("total", size);//总条数
int startNum = (pageIndex-1)* pageSize+1 ; //起始截取数据位置
if(startNum > datas.size()){
return null;
}
List<T> res = new ArrayList<>();
int rum = datas.size() - startNum;
if(rum < 0){
return null;
}
if(rum == 0){ //说明正好是最后一个了
int index = datas.size() -1;
res.add(datas.get(index));
// return map;
}
if(rum / pageSize >= 1){ //剩下的数据还够1页,返回整页的数据
for(int i=startNum;i<startNum + pageSize;i++){ //截取从startNum开始的数据
res.add(datas.get(i-1));
}
}else if((rum / pageSize == 0) && rum > 0){ //不够一页,直接返回剩下数据
for(int j = startNum ;j<=datas.size();j++){
res.add(datas.get(j-1));
}
}
map.put(“size”,res.size());//当前页总条数
map.put(“list”,res); //分页当前页list数据
return map;
}
/**
* pagehelper 手动分页
*
* @param currentPage 当前页
* @param pageSize
* @param list
* @param <T>
* @return
*/
public static <T> PageInfo<T> getPageInfo(int currentPage, int pageSize, List<T> list) {
int total = list.size();
if (total > pageSize) {
int toIndex = pageSize * currentPage;
if (toIndex > total) {
toIndex = total;
}
list = list.subList(pageSize * (currentPage - 1), toIndex);
}
Page<T> page = new Page<>(currentPage, pageSize);
page.addAll(list);
page.setPages((total + pageSize - 1) / pageSize);
page.setTotal(total);
PageInfo<T> pageInfo = new PageInfo<>(page);
return pageInfo;
}
}
Service 调用
public Map<String,Object> selectIndexWeight(Integer page, Integer row) {
Map<String,Object> map = PageUtils.pageMap(vis,row,page);
return map;
}
另一种分页,这种只能分第一次查询到的数据
public PageResult selectf3List(String kfqdm, Integer page, Integer row) {
PageHelper.startPage(page, row);
List f3list =developmenMapper.selectF_3ByParam(kfqdm,page,row) ;
PageInfo pageInfo = new PageInfo<>(f3list);
return new PageResult<>(pageInfo.getTotal(),f3list);
}