一、分頁(yè)接口:
/*
 * Page.java
 * 創(chuàng)建日期 2005-4-13
 * @ Author wuxp
 */
package org.page.pageutil;

/**
 * @ Author wuxp
 */
public interface Page {
 public void setCurrentPage(String c);
 public int getCurrentPage();
 public String getToolBar(String path);
 
 public int count(String sql);
 public int getMaxPage();

}
二、查詢類
/*
 * Query.java
 * 創(chuàng)建日期 2005-4-13
 * @ Author wuxp
 */
package org.page.pageutil;


/**
 * @ Author wuxp
 */
public class Query {
 String sql="";
 int max=10;
 public Query(String sql1) 
 {
  sql="select * from (select table1.*,rownum as row1 from ("+sql1+") table1) ";
 }
 
 public String getQuerySql(){
  return sql;
 }
 
 public void setFirstPage(int first)
 {
  sql+="where row1>"+(first*max);
  if (first==0)
   sql+=" and row1<="+max;
  else
   sql+=" and row1<="+(first*max+max);
  //System.out.println(sql);
 }
 
 public void setMaxResults(int max)
 {
  this.max=max;
 }
}
三、分頁(yè)接口實(shí)現(xiàn):
/*
 * SimplePage.java
 * 創(chuàng)建日期 2005-4-13
 * @ Author wuxp
 */
package org.genius.util.page.pageutil;

import java.sql.ResultSet;

import org.genius.systemmanager.database.JndiConn;

/**
 * @ Author wuxp
 */
public class SimplePage implements Page {
 public int currentPage=0;
 private int all;
 private int maxPage;
 private int maxResults;
 public void setCurrentPage(String c)
 {
  if (c!=null)
   currentPage=Integer.parseInt(c);
 }
 
 public void setMaxPage(int maxPage) {
  this.maxPage = maxPage;
 }
 
 public int getMaxPage() {
  return maxPage;
 }
 public int getCurrentPage()
 {
  return currentPage;
 }
 public String getToolBar(String path)
 {
  String toolbar="<table border=0 width=95% height=25><form action='"+path+"' method='post' onsubmit='checkJump(this)'><tr><td align=right>";
  toolbar+="共<font color='#21A2E7'>"+maxResults+"</font>條 ";
  toolbar+="<a href='"+path+"&currentPage=0'>首頁(yè)</a> | ";
  if (currentPage==0)
   toolbar+="上頁(yè) | ";
  else
   toolbar+="<a href='"+path+"&currentPage="+(currentPage-1)+"'>上頁(yè)</a> | ";
  if (currentPage==all)
   toolbar+="下頁(yè) | ";
  else
   toolbar+="<a href='"+path+"&currentPage="+(currentPage+1)+"'>下頁(yè)</a> | ";
  toolbar+="<a href='"+path+"&currentPage="+all+"'>尾頁(yè)</a> ";
  toolbar+=" 頁(yè)次:<font color='#21A2E7'>"+(currentPage+1)+"/"+(all+1)+"</font>頁(yè) ";
  toolbar+="<font color='#21A2E7'>"+maxPage+"</font>條/頁(yè) ";
  toolbar+=" 轉(zhuǎn)到第<input type=\"text\" name=\"currentPage\" style=\"width:15;height:18\">頁(yè) ";
  toolbar+="<input type='submit' value='GO' class='toolbar_go'>";
  toolbar+="<script>function checkJump(form1){" +
    "if (form1.currentPage.value==\"\"||isNaN(form1.currentPage.value)||form1.currentPage.value>"+(all+1)+"||form1.currentPage.value<0){" +
    "form1.currentPage.value='0';}" +
    "else{" +
    "form1.currentPage.value=parseInt(parseInt(form1.currentPage.value)-1);" +
    "}";
  toolbar+="}</script>";
  toolbar+="</td></form></tr></table>";
  return toolbar;
 }
 public int count(String sql){

   //此類是自己封裝的連結(jié)池,可改變?yōu)樽约旱臄?shù)據(jù)庫(kù)連接
  JndiConn conn=new JndiConn();
  String sql_count="select count(*) as count from ("+sql+")";
  //System.out.println(sql);
  try{
   ResultSet rs=conn.executeQuery(sql_count);
   while (rs.next())
    all=rs.getInt("count");
   rs.close();
  }
  catch(Exception e){
   e.printStackTrace();
  }finally{
   conn.close();
  }
  maxResults=all;
  if (all%maxPage==0){
   if (all<=maxPage)
   all=0;
   else
    all=all/maxPage-1;
  }
  else
   all=all/maxPage;
  //all=all/maxPage;
  return all;
 }

}