找回密码
 注册
搜索
热搜: 回贴
  • 前程无忧官网首页 有什么好的平台可以
  • 最新的销售平台 互联网营销的平台有哪
  • 制作网页的基本流程 网页制作和网页设
  • 【帝国CMS】输出带序号的列表(数字排
  • 网站建设公司 三一,中联,极东泵车的
  • 织梦 建站 织梦网站模版后台怎么更改
  • 云服务官网 哪些网站有免费的简历模板
  • 如何建网站要什么条件 建网站要用什么
  • 吉林市移动公司电话 吉林省退休人员网
  • 设计类毕业论文 网站设计与实现毕业论
查看: 7076|回复: 2

分页的bean

[复制链接]
发表于 2009-11-29 01:40:08 | 显示全部楼层 |阅读模式 IP:江苏扬州
写了一个分页的bean,是应和搜索引擎来写的,把分页结构倒置了,有兴趣的朋友可以来指点一下
package eng.xqsh;
import java.lang.*;
import java.sql.*;
import java.util.Iterator;
import java.util.*;
import javax.servlet.http.HttpServletRequest;
/*
外部调用顺序:
1、setRows(50);//设置每页显示记录录
2、getPages((int)总记录数);//求出总页数
3、strPage(request,"传递当前页数变量名字符传");//主要是初始当前页数
4、利用其他类得到ResultSet
5、getPageSet(ResultSet,当前页数,记录总数);//得到处理后的ResultSet
6、循环输出结果
7、out(每组的页数,“引入本类的页名”);//得到分页表格字符串
*/
public class PageAction
{
   int nowFirst=0;//当页记录开始数
       int nowLast=0; //当页记录结束数
     private String strPage;
     private int curPages;
     private int m_rows;
     private int pages;
     public PageAction()
     {
         strPage = null;
     }
     public String strPage(HttpServletRequest request, String page)
     {
       strPage = request.getParameter(page);
       return strPage;
     }
     public int curPages(String strPage)
     {
       if(strPage == null)
       {
           curPages = pages;
       }
       else
       {
           curPages = Integer.parseInt(strPage);
           if(curPages < 1)
              curPages = 1;
       }
        curPages=(pages-curPages+1);
        return curPages;
     }
     public void setRows(int rows)
     {
         m_rows = rows;
     }
     public int getPages(int rowcounts)
     {
         int test = rowcounts % m_rows;
         if(test == 0)
             pages = rowcounts / m_rows;
         else
             pages = rowcounts / m_rows + 1;
         return pages;
     }
     public int getStr(int curPages,int sum)
     {
       nowLast =(int)(((double)curPages/pages)*sum);
       nowFirst=nowLast-m_rows+1;
       return nowFirst;
     }
     public int getLast(int curPages,int sum)
     {
nowLast =(int)(((double)curPages/pages)*sum);
       return nowLast;
     }

     public ResultSet getPageSet(java.sql.ResultSet rs, int curPages,int sum)
     {
       Vector vector = new Vector();
       nowLast =(int)(((double)curPages/pages)*sum);
       nowFirst=nowLast-m_rows+1;
       //移动指针到当页记录开始数
       for(int i=0;i<nowFirst;i++)
       {
         try
         {
           rs.next();
         }
         catch(SQLException e)
         {
           System.out.println("NewsList:getPageSet:rs.next:"+e.getMessage());
         }
        }
       return rs;
     }
     public String out(int groups,String pageName)
     {
       int mark=0;       //该组显示的页码
       int groupSum=0;   //总的组数
       int curGroup;     //当前组数
       String xs=null;
       if(pages%groups==0)
          groupSum=pages/groups;
       else
          groupSum=pages/groups+1;
       if(curPages%groups==0)
         curGroup=curPages/groups;
       else
         curGroup=curPages/groups+1;
        if(curGroup<1)
          curGroup=1;
        xs="<table width='100%' height='19' border='0' align='center' cellpadding='0' cellspacing='1'>";
        xs=xs+"<tr><td width='120' valign='bottom'>";
        if(pages>1)
        {
          xs=xs+"curPage:"+(pages-curPages+1)+"/"+pages;
        }
        else
        {
            xs=xs+"1/1";
        }
        xs=xs+"<td align='right' valign='bottom'>";
        if((curGroup-1)*groups-1>0)
        {
          xs=xs+"<a href="http://www.blog.com.cn/+pageName+"page="+(pages-(curGroup-1)*groups+1)+"><<<</a>";
        }
          for(int i=1;i<groups+1;i++)
        {
          mark = (curGroup-1)*groups+i;
          if(mark>pages)
            break;
          if(mark==curPages)
          {
            xs=xs+"<span style='font-size:11pt; font-weight: bold;'>"+(pages-mark+1)+"</span>";
          }
          else
          {
              xs=xs+"<a href="http://www.blog.com.cn/+pageName+"page="+(pages-mark+1)+">["+(pages-mark+1)+"]</a>";
          }
        }
        if((curGroup*groups+1)<pages)
          {
            xs=xs+"<a href="http://www.blog.com.cn/+pageName+"page="+(pages-curGroup*groups)+">>>>></a>";
          }
          xs=xs+"</td></tr></table>";
       return xs;
     }
}

下面是分页的存储过程,mssql的
CREATE    PROCEDURE [dbo].[PageAction]
@pagesize int,
@first int,
@table varchar(100),
@id varchar(50),
@clonum varchar(200)
AS
DECLARE @sql   nVARCHAR(4000)
declare @intTop int
set @intTop=@pagesize
set @sql='select top '+str(@intTop)+' '+ @clonum +' from '+@table+ ' where '+@id+' <= (select min('+@id+') from (select top '+str(@first)+' '+ @id+' from '+@table+' order by '+@id+' desc)as aaa)order by '+@id+ ' desc'
--select @sql
exec (@sql)
GO
下面是带条件分页的存储过程

CREATE     PROCEDURE [dbo].[offer_search_xqsh]
@pagesize int,
@first int,
@table varchar(50),
@id varchar(10),
@clonum varchar(200),
@where varchar(2000)
AS
DECLARE @sql   nVARCHAR(4000)
declare @intTop int
set @intTop=@pagesize
set @sql='select top '+str(@intTop)+' '+ @clonum +' from (select '+@clonum+' from '+@table+' where '+@where+' )as bbb   where ' +@id+' <= (select min('+@id+') from (select top '+str(@first)+' '+ @id+' from   '+@table+'   where   '+@where+'   order by '+@id+' desc)as aaa) order by '+@id+ ' desc'
--select @sql
exec (@sql)
GO
发表于 2010-2-1 13:05:14 | 显示全部楼层 IP:北京
美丽让男人停下,智慧让男人留下。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|小黑屋|最新主题|手机版|微赢网络技术论坛 ( 苏ICP备08020429号 )

GMT+8, 2024-9-30 07:18 , Processed in 0.162195 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表