package hzdq.fdjc.Common;import java.sql.*;
import java.util.*;/**
 * Title:分页
 * Description:
 * Copyright:    Copyright (c) 2004
 * Company:
 * author:颜喜班
 * @version 1.0
 */
public class SplitPager
{
  /*
   * _sql_str:传入的sql语句
   * _total_records: 总记录数目
   * _pageSize: 每页显示的记录数目
   * _page: 所分的逻辑页数
   */
private Connection con=null;
private Statement stmt=null;
private ResultSet rs=null;
private ResultSetMetaData rsmd=null;
private String _sql_str;
private int _total_records;
private int _pages;
private int _pagesize;
public void setConnection(Connection con)
{
this.con=con;
if (this.con == null)
            System.out.println("Failure to get a connection!");
else
System.out.println("Success to get a connection!");
}
public void initialize(String sqlStr,int pageSize)
{
this._sql_str=sqlStr;
this._pagesize=pageSize;
try{  
stmt=this.con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);  
                rs=stmt.executeQuery(this._sql_str); 
rsmd=rs.getMetaData();
if (rs!=null)
{
rs.last();
this._total_records = rs.getRow();
rs.first();
this._pages = (this._total_records - 1) / this._pagesize + 1;

}  
           catch(SQLException  e){System.out.println(e.toString()); } 
}
public  Vector  getPage(int ipage){ 
          Vector  vData=new  Vector();
          int  n=ipage;  
          int  m=0;  
          m=(n-1)*this._pagesize+1;  
  try{
if (rs!=null)
{
rs.absolute(m);
for(int i=0;i<this._pagesize;i++){
String[] sData=new String[rsmd.getColumnCount()];
for(int j=0;j<rsmd.getColumnCount();j++)
{
sData[j]=rs.getString(j+1);
}
if (sData==null)
{
break;
}
vData.addElement(sData);
rs.next();

}            
                rs.close();  
    stmt.close(); 
                }  
           catch(SQLException  e){System.out.println(e.toString()); } 
           return  vData;  
}  
public int getPages()
    {
        return this._pages;
    }
public int getTotalRecords()
    {
        return this._total_records;
    }}