分页工具类

工具类直接复制创建

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);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值