太长了......................................等我看完就没饭吃了.............
只好对不起楼主了

解决方案 »

  1.   

    这个好像很早就有了,思路是对的,但是他的源码里面有点小问题的,好像是在记录集滚动的地方,自己改好就行了
      

  2.   

    很好啊,看不出有什么问题哦:)
      

  3.   

    import conn.DBConnManager;
    import java.sql.*;
    import java.util.*;public class ResultGatherPro 
    {
    private String sql;
    private int intPageSize; //每页行数
    private int intRowCount;
    private int intPageCount;
    private int intPage; //页号
    private String Counter; public ResultGatherPro()
    {

    }
    public ResultGatherPro(String sqlcom,int rownum,int pagenum,String counter)
    {
    sql=sqlcom;
    intPageSize = rownum;
    intPage = pagenum;
    Counter = counter;
    }
    public List selectRS(String sqlcom,int rownum,int pagenum,String counter)
    {
    this.sql = sqlcom;
    this.intPageSize = rownum;
    this.intPage = pagenum;
    this.Counter = counter;
    return selectRS(); 
    }
    public List selectRS()
    {
    List rsall = new ArrayList();
    Map rsTree;
    try{
    DBConnManager conn = new DBConnManager();
    Connection con = conn.getConnection("mssql");
    Statement st = con.createStatement();
    ResultSet rsc=st.executeQuery(Counter);
    while(rsc.next())
    {
    intRowCount=rsc.getInt("allrow");
    }
    rsc.close();
    st.close();
    CallableStatement stmt = con.prepareCall("{call p_show(\""+sql+"\","+intPageSize+","+intPage+")}");
    ResultSet rs = stmt.executeQuery();
    ResultSetMetaData rsmd = rs.getMetaData();
    int numberOfColumns = rsmd.getColumnCount();
    Object[] aa = new Object[numberOfColumns-1];
    intPageCount = (intRowCount+intPageSize-1)/intPageSize;
    while(rs.next())
    {
    rsTree = new HashMap(numberOfColumns);
    for(int r=1;r<numberOfColumns+1;r++)
    {
    rsTree.put(rsmd.getColumnName(r),rs.getObject(r));
    }
    rsall.add(rsTree);
    }
    rs.close();
    stmt.close();
    conn.releaseConnection("mssql",con);
    }catch(java.lang.Exception ex){
    ex.printStackTrace();
    }
    return rsall;
    }
    public String ChangePage(String pagename,String url)
    {
    String urlchange=null;
    if(intPage>1 && intPage<intPageCount)
    {
    urlchange="<a href="+pagename+"?pagenum="+(intPage-1)+url+">上一页</a><a href="+pagename+"?pagenum="+(intPage+1)+url+"> 下一页</a> 第"+intPage+"页 共"+intPageCount+"页 共"+intRowCount+"条";
    }else if(intPage==1 && intRowCount<=intPageSize){
    urlchange="上一页 下一页 第"+intPage+"页 共"+intPageCount+"页 共"+intRowCount+"条";
    }else if(intPage==intPageCount && intPage!=1){
    urlchange="<a href="+pagename+"?pagenum="+(intPage-1)+url+">上一页</a> 下一页 第"+intPage+"页 共"+intPageCount+"页 共"+intRowCount+"条";
    }else if(intPage==1 && intRowCount>=intPageSize){
    urlchange="上一页 <a href="+pagename+"?pagenum="+(intPage+1)+url+"> 下一页</a> 第"+intPage+"页 共"+intPageCount+"页 共"+intRowCount+"条";
    }else{
    urlchange = "<a href="+pagename+">第一页</a>";
    }
    return urlchange;
    }
    public String gotoPage(String url)
    {
    String javascript = "<script>function checksearch()\n{if(find.pagenum.value==\"\" || find.pagenum.value==\"0\"){alert('请输正确入页数!');find.pagenum.focus();return false;}\nif(isNaN(find.pagenum.value)){alert('请输入数字!');find.pagenum.focus();return false;}}</script>";
    String form = "<table  border='0' cellpadding='0' cellspacing='0'>\n"+javascript;
    form += "<form name='find'  action='' onSubmit='return checksearch()'>\n<tr><td width='40' align='center'>\n<input name='pagenum' type='text' size='2'>\n";
    if(url!=null)
    {
    if(url.indexOf("&")>0)
    {
    String[] param = new String[(url.split("&")).length];
    param = url.split("&");
    for(int i = 0;i<param.length;i++)
    {
    form += "<input type='hidden' name='"+param[i].substring(0,param[i].indexOf("="))+"' value='"+param[i].substring(param[i].indexOf("=")+1)+"'>\n";
    }
    }else{
     if(url.indexOf("=")>0)
     {
    form += "<input type='hidden' name='"+url.substring(0,url.indexOf("="))+"' value='"+url.substring(url.indexOf("=")+1)+"'>\n";
     }
    }
    }
    form += "</td><td width='25' align='center'><input type='submit' name='Submit' value='GO'>\n</td>\n</tr>\n</form>\n</table>";
    return form;
    }
    public String intercept(String str,int num,String last)
    {
    if(str.length()<=num) return str;
    else
    return str.substring(0,num)+last;
    }
    }
      

  4.   

    很好,值得学习!我想试试!