分页类Pager

package demo;
import java.sql.ResultSet;
import java.sql.Statement;
import demo.Config;
/** * @(#)Pager.java
 * * * @author 
 * @version 1.00 2007/3/4
*/
public class Pager {     
 private int curPage;   
 private int pageSize;   
 private int allrowsCount=-1;   
 private int pageCount;   
 private ResultSet rs;         

public Pager(Statement stam,String tableName,int curPage) {    
     // pageszie default is 4.         
this(stam,tableName,curPage,0);    
 }   

public Pager(Statement stam,String tableName,int curPage,int pageSize) {               String sql="select * from "+tableName;         
String sqlcount="select count(*) from "+tableName;         
this.curPage = curPage;         
this.pageSize = pageSize;       
  if (this.pageSize==0)                                                                                               this.pageSize=Integer.parseInt(Config.Record_pageSize);  

     checkData(stam,sqlcount);                
  //    rs=stam.execute(sql);    }   

//检测数据
public boolean checkData(Statement stam,String sqlcount){             
              try {              rs=stam.executeQuery(sqlcount);                                      if(rs.next())       {                             
                   allrowsCount=rs.getInt(1);                         //计算页数                               this.pageCount = (int) Math.ceil((double) allrowsCount / pageSize);                     }                               
else{                                
       pageCount=0;                                     
        return false;                   }                                                                                rs.close();           }                       
      
        catch (Exception ex) {                      }          
  return true;   
}   
//返回记录总数
public int getRecordCount(){      
 return  allrowsCount;            } 

//前移 
public int previous() {     
 return (curPage - 1 < 1) ? 1 : curPage - 1;    }  

 //后移
public int next() {      
   return (curPage + 1 > pageCount) ? pageCount : curPage + 1;   
}       

public int getPageCount(){             return pageCount;    }    

 //返回当前页起始id
public  int getcurBRecordId(){       
return (curPage-1)*pageSize+1;    
   }     

//返回当前页起始id
public  int getcurERecordId(){      
 return (curPage-1)*pageSize+pageSize;    }         

public boolean isFirst() {        return (curPage==1)?true:false;    }   

public boolean isLast() {        return (curPage==pageCount)?true:false;    }    
//返回页数工具条StrBuffer
public StringBuffer getPageBar(String fileName){  
     String temp="";        
     StringBuffer str=new StringBuffer();    
  if(fileName.indexOf("?")==-1)   
    {            temp="?";        }     
  else        {            temp="&";        }       

str.append("<form method='post' name='frmPage' action='"+fileName+"'>/n");        str.append("<p align='center'>/n");   
    if(isFirst())        
   str.append("Home First&nbsp;");      
 else {  
str.append("<a href='"+fileName+temp+"cur_page=1'>Home</a>&nbsp;/n");          str.append("<a href='"+fileName+temp+"cur_page="+(curPage-1)+"'>Before</a>&nbsp;/n");  

     }      
 if(isLast())           
str.append("Next Last&nbsp;/n");    
   else    
   { str.append("<a href='"+fileName+temp+"cur_page="+(curPage+1)+"'>Next</a>&nbsp;/n");            str.append("<a href='"+fileName+temp+"cur_page="+pageCount+"'>Last</a>&nbsp;/n");        }     
  str.append("&nbsp;<b>"+allrowsCount+"</b> Record&nbsp;");   

    str.append("&nbsp;Go<select name='page' onChange=/"location='"+fileName+temp+"cur_page='+this.options[this.selectedIndex].value/">/n");       

for(int i=1;i<=pageCount;i++)     
 {    if(i==curPage)    
           str.append("<option value='"+i+"' selected>go"+i+"Page</option>"); 
          else         
              str.append("<option value='"+i+"'>go"+i+" Page</option>/n");        }   
    str.append("</select></p></form>/n");   
    return str;    } 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值