java 分页

1 篇文章 0 订阅

PageUtil

package com.jjkj.aj.business.config;

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.BeanUtils;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class PageUtil {
    /**
     * 一页多少条数据
     */
    public static final int PAGE_SIZE = 10;
    /**
     * 数据总数key
     */
    public static final String PAGE_COUNT = "totalCount";
    /**
     * 总共有多少页
     */
    public static final String PAGE_PAGES = "pagesCount";
    /**
     * 一页多少条数
     */
    public static final String PAGE_PAGESIZE = "pageSize";
    /**
     * 当前页数
     */
    public static final String PAGE_PAGE = "pageNum";

    /**
     * 传入当前需要查询的第几页不传默认差寻第一页
     *
     * @param pageNum 当前页
     */
    public static void startPage(Integer pageNum) {
        if (pageNum == null) {
            pageNum = 1;
        }
        PageHelper.startPage(pageNum, PAGE_SIZE);
    }

    /**
     * 传入当前需要查询的第几页不传默认差寻第一页
     *
     * @param pageNum 当前页
     * @param size    一页多少数据
     */
    public static void startPage(Integer pageNum, Integer size) {
        if (pageNum == null) {
            pageNum = 1;
        }
        PageHelper.startPage(pageNum, size);
    }

    /**
     * 查询第1页数据
     */
    public static void startPage() {
        startPage(null);
    }

    /**
     * 传入list获取分页参数
     *
     * @param list 数据集合
     *
     * @return
     */
    public static Map<String, Object> getMap(List<?> list) {
        Map<String, Object> map = new HashMap<String, Object>();
        return setMap(map,list,"list");
    }

    public static Map<String, Object> setMap(Map<String, Object> map,List<?> list,String listName) {
        PageInfo<?> pageInfo = new PageInfo(list);
        if (CollectionUtils.isEmpty(list)) {
            map.put(PAGE_COUNT, 0);
            map.put(PAGE_PAGES, 0);
            map.put(PAGE_PAGESIZE, 0);
            map.put(PAGE_PAGE, 0);
        } else {
            map.put(PAGE_COUNT, pageInfo.getTotal());
            map.put(PAGE_PAGES, pageInfo.getPages());
            map.put(PAGE_PAGESIZE, pageInfo.getPageSize());
//            map.put(PAGE_PAGESIZE, PAGE_SIZE);
            map.put(PAGE_PAGE, pageInfo.getPageNum());
        }
        map.put(listName, list);
        return map;
    }

    public static PageData<?> getPage(List<?> list) {
        Map<String, Object> map = getMap(list);
        PageData<?> dest = new PageData<>(1, 10);
        BeanUtils.copyProperties(dest, map);
        return dest;
    }
    public static long getTotalPages(Long count, Long size) {
        if (count == null || count == 0) {
            return 0;
        }
        long totalPages = count / size;
        if (count % size != 0) {
            totalPages++;
        }
        return totalPages;
    }
}

PageData

package com.jjkj.aj.business.config;

import com.fasterxml.jackson.annotation.JsonInclude;
import org.apache.poi.ss.formula.functions.T;

import java.util.ArrayList;
import java.util.List;

@JsonInclude(JsonInclude.Include.NON_NULL)
public class PageData<T> {
    /**
     * 创建一个新的实例 PageData.
     *
     * @param page     当前页
     * @param pageSize 页面展示数量
     */
    public PageData(Integer page, Integer pageSize) {
        this.page = page;
        this.pageSize = pageSize;
    }

    // 数据集合
    List<T> list = new ArrayList<T>();
    /**
     * 总页数
     */
    private Integer pagesCount = 1;
    /**
     * 总数量
     */
    private Integer totalCount = 0;
    /**
     * 当前页
     */
    private Integer page = 1;
    /**
     * 页面展示数量
     */
    private Integer pageSize = 10;

    public Integer getPage() {
        return page;
    }

    public void setPage(Integer page) {
        this.page = page;
    }

    public Integer getPageSize() {
        return pageSize;
    }

    public void setPageSize(Integer pageSize) {
        this.pageSize = pageSize;
    }

    public Integer getPagesCount() {
        this.pagesCount = ((this.getTotalCount() - 1) / pageSize) + 1;
        return pagesCount;
    }

    public Integer getTotalCount() {
        return totalCount;
    }

    public void setTotalCount(Integer totalCount) {
        this.totalCount = totalCount;
    }

    public List<T> getList() {
        return list;
    }

    public void setList(List<T> list) {
        this.list = list;
    }
}

使用方式

在这里插入图片描述
注意:如上图片的分页是有问题的因为调用了dataMap2Java驼峰方法
在PageUtil里面的这个查询不能进行任何的java逻辑处理,否则分页会失效

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值