处理分页问题

    之前在作完完电视台短信参与的业务后,随便写了个后台,为了应急,叫那边暂时先用.之后用户参与比较多,就对用户参与进行分页.   前面写的也面是全部把数据掉出来,好浪费时间.昨天进行优化,看书上的例子,需要写几个bean,好麻烦,我只是想在自己以前的程序上进行修改.

    实现方法,对原来的也面不进行修改,只是对bean中获取记录集的方法参数进行设置,从页面把参数设置好,传到bean里面,每次就掉一页的数据,速度挺快的.昨天晚上已经把三亚的后台高定.

   <%
 //获得这次查询的总条数
 int totalRow;
 totalRow=optvuser.getTVUserPageByTime(bgtime,edtime,phonenum);
 int intPage;  //当前页数
 int intPageCount;  //一共有多少页
 
 int PageSize   =   10;      
    intPageCount=(totalRow+PageSize-1)/PageSize;
    //对当前的页数进行规范
    String strPage   =   request.getParameter("page");  
  if(strPage==null){
  intPage   =   1;  
  }   else{
  intPage   =   java.lang.Integer.parseInt(strPage);  
  if(intPage<1)   intPage   =   1;
  if (intPage>intPageCount)
     intPage=intPageCount;
       }

--------------------------下面是提示的FORM

<table width="100%" border="0" cellspacing="0" cellpadding="0" align="center">
<%
    out.print("<tr bgcolor=#EBEBEB><td>");
    if(intPage>intPageCount)
        intPage=intPageCount;
    if(intPage<1)
        intPage=1;
    out.print("<form method='post' action='searchTVUserMO_do.jsp?bgtime="+bgtime+"&&edtime="+edtime+"&&phonenum="+phonenum+"'>");
    if(intPage<2)
        out.print("首页 上一页 &nbsp;");
    else{
        out.print("<a href='searchTVUserMO_do.jsp?page=1&&bgtime="+bgtime+"&&edtime="+edtime+"&&phonenum="+phonenum+"'>首页</a>&nbsp;");
        out.print("<a href='searchTVUserMO_do.jsp?page="+(intPage-1)+"&&bgtime="+bgtime+"&&edtime="+edtime+"&&phonenum="+phonenum+"'>上一页</a>&nbsp;");
    }
    if(intPage-intPageCount>=0)
        out.print("下一页 尾页");
    else{
        out.print("<a href='searchTVUserMO_do.jsp?page="+(intPage+1)+"&&bgtime="+bgtime+"&&edtime="+edtime+"&&phonenum="+phonenum+"'>下一页</a>&nbsp;<a href='searchTVUserMO_do.jsp?page="+intPageCount+"&&bgtime="+bgtime+"&&edtime="+edtime+"&&phonenum="+phonenum+"'>尾页</a>");
    }
    out.print("&nbsp;页次:"+intPage+"/"+intPageCount+"页");
   
    out.print("&nbsp;共"+totalRow+"条");
    out.print("转到第<input type='text' name='page' size=2 maxlength=10  class=smallInput value="+intPage+">");
    //session.setAttribute("edtime",edtime);
    //session.setAttribute("edtime",edtime);
    out.print("页<input class=buttonface type='submit' value='GO' name='cndok'></form>");
    out.print("</td>");
    out.print("</tr>");
 %>
 </table>

----------------------------------------------

其中在bean里面处理一次要调用的数据的语句.

 public Collection getTVUserPageMSGByTime(String bgtime,String edtime,String phonenum,int pagesize,int nowpage)throws Exception
    {
        Statement stmt=con.createStatement();
        ResultSet rst=stmt.executeQuery("select top "+pagesize+" * from tb_content_TVSM where SubmitTime in (select top " +pagesize*nowpage+" SubmitTime from tb_content_TVSM order by SubmitTime ) and  " +
          " SubmitTime>='"+bgtime+"' and SubmitTime<='"+edtime+"' and Mobile like '"+phonenum+"%' order by Submittime desc");
        Collection ret=new ArrayList();
        while(rst.next())
        {
            TVUser temp=new TVUser();
            temp.setuserphone(rst.getString("Mobile"));
            temp.setuserid(rst.getInt("User_ID"));
            temp.setsubmittime(rst.getString("SubmitTime"));
            temp.setasw(rst.getString("Answer"));
            temp.setcorrect(rst.getString("Correct"));         
            ret.add(temp);          
        }
        con.close();
        return ret;
    }

----------------------------------------

select top "+pagesize+" * from tb_content_TVSM where SubmitTime in (select top " +pagesize*nowpage+" SubmitTime from tb_content_TVSM order by SubmitTime ) and  " +
          " SubmitTime>='"+bgtime+"' and SubmitTime<='"+edtime+"' and Mobile like '"+phonenum+"%' order by Submittime desc

这条语句虽然比较简单,但是在以后工作对用户进行分群,就比较容易了,在以前都是将用户的手机号码导出来,然后在进行分,最后在导如,好麻烦.

 

其他的分页方法用存储过程,等其他办法都很容易实现的.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值