Java常用工具类集合(四)

本文介绍了一个实用的Java分页工具类SharePager的设计与实现。该类支持自定义每页显示的记录数量,并提供了跳转到首页、上一页、下一页及尾页的功能。此外,还介绍了如何设置总记录数、当前页号等属性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

分页工具类 SharePager.java

[java] view plain copy
package com.util;  
  
  
/** 
 * 分页工具类 
 * 
 */  
public class SharePager {  
    private int totalRows; //总行数  
    private int pageSize = 20; //每页显示的行数    
    private int currentPage; //当前页号  
    private int totalPages; //总页数   
    private int startRow; //当前页在数据库中的起始行    
     
  
    /** 
     * 默认构造函数 
     */  
    public SharePager()   
    {    
          
    }    
        
    /**默认每页10行 
     * @param totalRows  
     */    
    public SharePager(int totalRows)   
    {    
        this.totalRows = totalRows;    
  
        totalPages =(int) Math.ceil((double)totalRows / (double)pageSize);    
        startRow = 0;    
    }    
        
        
    /**可自定义每页显示多少页 
     * @param totalRows  
     * @param pageSize  
     */    
    public SharePager(int totalRows, int pageSize)   
    {    
        this.totalRows = totalRows;    
        this.pageSize = pageSize;   
        if(this.pageSize<1)                 
            this.pageSize=1;  
        else if(pageSize>20)  
            this.pageSize=20;  
  
//        if(this.pageSize>totalRows){  
//          this.pageSize=(int)totalRows;  
//        }  
          
      
  
        totalPages =(int) Math.ceil((double)totalRows / (double)this.pageSize);     
        currentPage = 1;    
        startRow = 0;    
    }    
        
    /** 
     * 跳转到首页 
     */  
    public void first()   
    {    
        this.currentPage = 1;    
        this.startRow = 0;   
    }    
      
    /** 
     * 跳转到上一页 
     */  
    public void previous()   
    {    
        if (currentPage == 1)   
        {    
            return;    
        }    
        currentPage--;    
        startRow = (currentPage-1) * pageSize;    
   }    
      
    /** 
     * 跳转到下一页 
     */  
    public void next()   
    {    
        if (currentPage < totalPages)  
        {    
            currentPage++;    
        }    
        startRow = (currentPage-1) * pageSize;    
    }    
      
    /** 
     *  跳转到尾页 
     */  
    public void last()   
    {    
        this.currentPage = totalPages;    
        if(currentPage<1){  
            currentPage = 1;  
        }  
        this.startRow = (currentPage-1) * this.pageSize;  
        totalPages =(int) Math.ceil((double)totalRows / (double)this.pageSize);     
          
    }    
      
    /** 
     * 跳转到指定页 
     * @param currentPage   指定的页 
     */  
    public void refresh(int currentPage)   
    {    
          
        if(currentPage < 0)  
        {  
            first();  
        }  
        if (currentPage > totalPages)   
        {    
            last();    
        }else{  
            this.currentPage = currentPage;  
            this.startRow = (currentPage-1) * this.pageSize;  
          }  
   
    }    
       
        
    public int getStartRow()  
    {    
        return startRow;    
    }    
      
    public int getTotalPages()  
    {    
        return totalPages;    
    }    
      
    public int getCurrentPage()  
    {    
        return currentPage;    
    }    
      
    public int getPageSize()   
    {    
        return pageSize;    
    }    
      
    public void setTotalRows(int totalRows)   
    {    
        this.totalRows = totalRows;    
    }    
      
    public void setStartRow(int startRow)  
    {    
        this.startRow = startRow;    
    }    
      
    public void setTotalPages(int totalPages)   
    {    
        this.totalPages = totalPages;    
    }    
      
    public void setCurrentPage(int currentPage)   
    {    
        this.currentPage = currentPage;    
    }   
      
    public void setPageSize(int pageSize)   
    {    
        this.pageSize = pageSize;    
    }    
      
    public int getTotalRows()   
    {    
        return totalRows;    
    }    
}  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蹉跎之人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值