java分页工具类

2人阅读 评论(0) 收藏 举报
/**
 * 对象 分页请求和响应实体 TO
 * 
 * @author Administrator 对象业务层封装 提供setter 计算的数据 可以直接提供getter 计算出来
 */
public class Pagination<T> implements Serializable {

    /**
     * 
     */
    private static final long serialVersionUID = -6323877942746161281L;
    private Integer pageSize = 10;// 每页显示记录数 固定不动

    private Integer pageNo = 1;
    private Long totalCount = 0L;
    private String orderBy = "createTime";
    private String direction = "desc";
    private List<T> data = new ArrayList<T>();

    private int pageNum = 1;// 当前页码 每一次请求 来自 web 接受请求

    private int totalPages;// 总页码 计算出来 : 总记录数 和 每页显示记录数

    private int beforePage;// 上一页 当前页码 -1

    private int nextPage;// 下一页 当前页码+1

    private int pageBar[];// 每次查询 分页栏每一个显示页码 6----15 计算出来 总页码+当前页码计算出来

    private List<T> pageRows;// 每一次查询 分页记录数 // 数据库查询 select * from xxx limit ?,?

    private long totalCounts;// 总记录数 // 来自数据查询 ...业务层封装

    private int startIndex;// 分页查询的起始记录数

    private int size = 5;

    private Long allCase;
    private Long ownCase;
    private Long otherCase;
    private Long noCase;


    public int getSize() {
        return size;
    }

    public void setSize(int size) {
        this.size = size;
    }

    public Integer getPageSize() {
        return pageSize;
    }

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

    public Integer getPageNo() {
        return pageNo;
    }

    public void setPageNo(Integer pageNo) {
        this.pageNo = pageNo;
    }

    public Integer getPosStart() {
        return (pageNo - 1) * pageSize;
    }

    public String getOrderBy() {
        return orderBy;
    }

    public void setOrderBy(String orderBy) {
        this.orderBy = orderBy;
    }

    public String getDirection() {
        return direction;
    }

    public void setDirection(String direction) {
        this.direction = direction;
    }

    public List<T> getData() {
        return data;
    }

    public void setData(List<T> data) {
        this.data = data;
    }

    public Long getTotalCount() {
        return totalCount;
    }

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

    public Long getPages() {
        return (totalCount - 1) / pageSize + 1;
    }

    // 起始记录的计算

    public int getStartIndex() {
        this.startIndex = (this.pageNum - 1) * this.size;
        return this.startIndex;// 计算出分页查询的起始记录数

    }

    public int getPageNum() {
        return pageNum;
    }

    public void setPageNum(int pageNum) {
        this.pageNum = pageNum;
    }

    /**
     * 
     * 总页码
     * 
     * 
     * 
     * @return
     * 
     */
    public int getTotalPages() {
        // 数学计算 总记录数 以及 每页显示记录数

        // 10 120 12 10 119 12 10 121 13

        this.totalPages = ((int) this.totalCounts + this.size - 1) / this.size;
        return this.totalPages;
    }

    /**
     * 
     * 上一页
     * 
     * 
     * 
     * @return
     * 
     */
    public int getBeforePage() {
        this.beforePage = this.pageNum - 1;
        if (this.beforePage <= 0) {
            this.beforePage = 1;
        }
        return this.beforePage;
    }

    // 下一页

    public int getNextPage() {
        this.nextPage = this.pageNum + 1;
        if (this.nextPage >= this.totalPages) {
            this.nextPage = this.totalPages;
        }
        return this.nextPage;
    }

    /*
     * 
     * 页码栏数值 6---15
     * 
     */
    public int[] getPageBar() {
        // 由当前页码 总页码 计算 规则 前五后四规则 基于 总页码>10 每次显示10个页码

        // 计算起始页码 数字 以及 末尾 页码数字

        int beginPage;// 起始页码 6 11

        int endPage;// 末尾数字 15

        // 1: 如果总页码 小于 10

        if (this.totalPages <= 10) {
            // 没有前五后四原则

            beginPage = 1;
            endPage = this.totalPages;
        } else {
            // 总页码大于10 前五后四

            beginPage = this.pageNum - 5;
            endPage = this.pageNum + 4;
            // 排除 小于 0 大于总页码情况

            if (beginPage <= 0) {
                beginPage = 1;
                endPage = beginPage + 9;
            }

            if (endPage >= this.totalPages) {
                endPage = this.totalPages;
                beginPage = this.totalPages - 9;
            }

        }
        // 定好 起始数字 末尾数字 计算 beginPage 4 pageNum 9 endPage = 13

        this.pageBar = new int[endPage - beginPage + 1];
        int index = 0;
        for (int i = beginPage; i <= endPage; i++) {
            this.pageBar[index++] = i;
        }
        // 分页栏页码完成封装了!

        return this.pageBar;
    }

    public List<T> getPageRows() {
        return pageRows;
    }

    public void setPageRows(List<T> pageRows) {
        this.pageRows = pageRows;
    }

    public long getTotalCounts() {
        return totalCounts;
    }

    public void setTotalCounts(long totalCounts) {
        this.totalCounts = totalCounts;
    }

    public Long getAllCase() {
        return allCase;
    }

    public void setAllCase(Long allCase) {
        this.allCase = allCase;
    }

    public Long getOwnCase() {
        return ownCase;
    }

    public void setOwnCase(Long ownCase) {
        this.ownCase = ownCase;
    }

    public Long getOtherCase() {
        return otherCase;
    }

    public void setOtherCase(Long otherCase) {
        this.otherCase = otherCase;
    }

    public Long getNoCase() {
        return noCase;
    }

    public void setNoCase(Long noCase) {
        this.noCase = noCase;
    }



}
查看评论

java分页工具类(非常实用)

  • 2011年09月05日 13:19
  • 85KB
  • 下载

分页封装实用工具类及其使用方法

分页封装实用工具类及其使用方法 作者: javaboy2012 Email:yanek@163.com qq:    1046011462     package com.yanek....
  • 5iasp
  • 5iasp
  • 2013-04-03 17:16:10
  • 1867

Java实现的分页工具类

  • 2009年12月03日 15:01
  • 2KB
  • 下载

java通用分页工具类

package com.oceansoft.swl.qt.common.domain;import java.util.List;import com.oceansoft.uums.common.co...
  • leilei19920808
  • leilei19920808
  • 2016-02-03 15:49:40
  • 521

很好用的Java web分页工具类

前言: 工作中过程中,同事给的一个后台开发分页工具类,小收藏一下~~ 在jsp中,前一页和后一页分别使用previouspage和nextpage,中间的分页数值1,2,3...等,只要forea...
  • imhxl
  • imhxl
  • 2016-10-10 10:04:23
  • 7914

java 分页工具类

说明:曾经在网上看过花样繁多的分页,很多都号称如何通用,但很多时候往往不尽如人意:有在分页类中还加入URL地址信息的,有在分页类中还进行分页动作处理(此动作完全属于操作数据库方面的事情)的。现在好了,...
  • seeseait
  • seeseait
  • 2015-05-26 09:51:06
  • 1456

Mybatis+mysql动态分页查询数据案例——分页工具类(Page.java)

package cn.bdqn.mhouse.util; import java.util.ArrayList; import java.util.List; import cn.bdqn.mho...
  • qq_34137397
  • qq_34137397
  • 2017-03-18 22:46:19
  • 1843

List集合分页工具类,正在使用的。

  • 2010年11月08日 23:12
  • 4KB
  • 下载

page分页工具类 数据库端

/* * 文件名: Page.java * * 创建日期: 2005-03-06 * * Copyright(C) 2008, by FrancisJin. * * 原始作者: sun...
  • sunny243788557
  • sunny243788557
  • 2012-10-18 17:23:16
  • 3050

分页的封装——java实现(基于oracle)

分页的封装,java实现,基于Oracle数据库
  • AlvinNoending
  • AlvinNoending
  • 2015-01-20 21:33:24
  • 2906
    个人资料
    等级:
    访问量: 160
    积分: 67
    排名: 161万+
    文章分类
    文章存档
    最新评论