JSP-mysql基本分页技术

 

写的bbs到了最后阶段才加上了

貌似大体有四种实现方法,做一个用一个吧

使用范围:数据量较小,网络流量较小的项目

缺点:每次显示一页都会查出所有数据然后利用偏移显示出需要的数据

 

思想:

利用的是mysql查询时的语句  limit offset,rows

                           offset为起始查询点,rows为显示行数

 

1.在相应javabean写一个函数 返回要查询项的总数

    public int partPostCount()
    {

       String strSql="select count(*) as Counts from posts "; 
    }

2.写另一个函数,用于获取查询结果

   另:mysql用limit   sql server可以用top

  public Vector getPostList()
    {
     Vector postVector=new Vector();
     
     String strSql = "select postId,postTitle,author,comcount,click,sign from posts where part=? order by sign desc limit ?,5";    
    try{
     DBConnect dbc=new DBConnect(strSql);  
     dbc.setInt(1,part);
     dbc.setInt(2, (dipage-1)*5);//注意这里,设置显示的开始位置(页码-1)*每页显示个数
     ResultSet rs=dbc.executeQuery();       
     while(rs.next())
        {
         Posts pos=new Posts();
         pos.setId(rs.getInt(1));
         pos.setTitle(rs.getString(2));
         pos.setAuthor(rs.getString(3));
         pos.setComcount(rs.getInt(4));
         pos.setClick(rs.getInt(5));
         pos.setSign(rs.getInt(6));
         postVector.add(pos);
        }
        dbc.close();
     return postVector;
      
        }catch(Exception e)
        {
         return null;
        }
    }

 

 

3..在显示的jsp页面中

 <%//处理分页
    int dipage=1;
    String pages=request.getParameter("dipage");//获取页码
    if(pages==null || pages.length()==0)
            pages="1";
    try{
    dipage=Integer.parseInt(pages);
    }catch(Exception e)
    {
       dipage=1;
    }

 

     int pageSize=5;//每页显示数目,于javabean中设置一致
     int recordCount=   .partPostCount();//调用第一步写的javabean函数
     int pageCount=0;//计算总页数
     if(recordCount%pageSize==0)
         pageCount=recordCount/pageSize;
     else
         pageCount=recordCount/pageSize+1;

    

      //之后可以直接调用第二步写的javabean

     Vector postVector=post.getPostList();

     for(int i=0;i<postVector.size();i++)
        {
        post=(Posts)postVector.get(i);

         //后面用post对象的get显示出来例如<%=post.getAuthor() %>
   %>

 

  在适当位置加入调换页码的链接:

        <% if(dipage!=1){%>
        <a href="PostList.jsp?dipage=1">第一页</a>
        <a href="PostList.jsp?dipage=<%=(dipage-1) %>">上一页</a>  
        <%} %>
        <% if(dipage!=pageCount) {%>
        <a href="PostList.jsp?dipage=<%=(dipage+1) %>">下一页</a>
        <a href="PostList.jsp?dipage=<%=pageCount %>">尾页</a>

 

 

 

PS:第一种写完了,呵呵

    写下一个的用另一种方法咯   稻草誓言http://blog.sina.com/programbus

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值