zoukankan      html  css  js  c++  java
  • 分页查询

    page 类代码分页查询代码

     1 package com.pb.pager;
     2 
     3 public class Pager {
     4     /**
     5      * 总页数
     6      */
     7     private int totalcount = 0;
     8     /**
     9      * 页面大小,即每页显示记录数
    10      */
    11     private int pageSize = 0;
    12     /**
    13      * 记录总数
    14      */
    15     private int recordCount = 0;
    16     
    17     /**
    18      * 当前页号
    19      */
    20     private int currPageNo=0;
    21 
    22     public int getCurrPageNo() {
    23         if(totalcount==0)
    24             return 0;
    25         return currPageNo;
    26     }
    27 
    28     public void setCurrPageNo(int currPageNo) {
    29         if(currPageNo>0)
    30         this.currPageNo = currPageNo;
    31     }
    32 
    33     public int getTotalcount() {
    34         return totalcount;
    35     }
    36 
    37     public void setTotalcount(int totalcount) {
    38         this.totalcount = totalcount;
    39     }
    40 
    41     public int getPageSize() {
    42         return pageSize;
    43     }
    44 
    45     public void setPageSize(int pageSize) {
    46         if (pageSize > 0)
    47             this.pageSize = pageSize;
    48     }
    49 
    50     public int getRecordCount() {
    51         return recordCount;
    52     }
    53 
    54     public void setRecordCount(int recordCount) {
    55         if (recordCount > 0)
    56             this.recordCount = recordCount;
    57     }
    58 
    59     // 设置总页数
    60     private void setTotalpagecount() {
    61         if (this.recordCount % this.pageSize == 0) {
    62             this.recordCount = this.recordCount / this.pageSize;
    63         } else if (this.recordCount % this.pageSize > 0) {
    64             this.recordCount = this.recordCount / this.pageSize + 1;
    65         }else{            
    66             this.recordCount=0;
    67         }    
    68     }
    69     /**
    70      * 开始记录数
    71      * @return
    72      */
    73     public int getStartRow(){
    74         return (currPageNo-1)*pageSize+1;
    75         
    76     }
    77     /**
    78      * 结束记录数
    79      * @return
    80      */
    81     public int getEndRow(){
    82         return currPageNo*pageSize;
    83         
    84     }
    85 }
    View Code

    分页查询的步骤

    (1).确定每页显示的数据数量

    (2).计算显示数据的总数量

    (3).计算显示的页数=总数量/每页显示的数据数量(+1)

    (4)。编写分页查询SQl语句

    (5).实现分页查询

    使用CallbleStatement执行存储过程

     1     public int getTotalcountProc() {
     2         int totalCount=0;
     3         CallableStatement proc=null;
     4         String sql="{call PRO_GETTOTALCOUNT(?)}";
     5         getConnection();
     6         try {
     7             proc=con.prepareCall(sql);
     8             proc.registerOutParameter(1, Types.INTEGER);
     9             proc.execute();
    10             totalCount=proc.getInt(1);
    11         } catch (SQLException e) {
    12             // TODO Auto-generated catch block
    13             e.printStackTrace();
    14         }
    15         
    16         // TODO Auto-generated method stub
    17         return totalCount;
    18     }

    分页显示关键点

    确定当前页

    设置首页,上一页,下一页,末页的页码

    首页和末页的控制

     1 <script type="text/javascript">
     2 function page_nav(frm,num){
     3         frm.pageIndex.value=num;
     4         frm.submit();
     5     }
     6     function jump_to(frm,pegeno){
     7         var regexp=/^d+$/;
     8         if(!regexp.test(pegeno)){
     9             alert("请输入正确数字!");
    10             return false;
    11         }else{
    12             page_nav(frm,pegeno);
    13         }
    14         
    15     }
    16 </script>
    17  <%
    18                 //获取当前页码
    19                 String currentPage=request.getParameter("pageIndex");
    20                 if(currentPage==null)
    21                     currentPage="1";
    22                 int pageIndex=Integer.parseInt(currentPage);
    23                 //获取新闻记录总数量   
    24                 int total=newsService.getTotalcount();
    25                 //每页显示记录数
    26                 int pagesize=2;
    27                 /*获取总页数*/
    28                 Pager pag=new Pager();
    29                 pag.setCurrPageNo(pageIndex);
    30                 pag.setPageSize(pagesize); 
    31                 pag.setRecordCount(total);
    32                 int totalpage=pag.getTotalPagecount();
    33                 //控制首页和末页
    34                 if(pageIndex<1){
    35                     pageIndex=1;
    36                 }else if(pageIndex>totalpage){                  
    37                     pageIndex=totalpage;
    38                 }
    39                 
    40                 List<News> newsList=newsService.getPageNewsList(pageIndex,pagesize);
    41 %>
    42     <li><%=total%>条记录&nbsp;&nbsp;<%=currentPage%>/<%=totalpage %></li>
    43                 <%
    44                 if(pageIndex>1){
    45                 %>
    46                 <a href="javascript:page_nav(document.forms[0],1)">首页</a>&nbsp;&nbsp;
    47                 <a href="javascript:page_nav(document.forms[0],<%=pageIndex-1%>)">上一页</a>&nbsp;&nbsp;
    48                 <%
    49                     }if(pageIndex<totalpage){
    50                 %>
    51                 <a href="javascript:page_nav(document.forms[0],<%=pageIndex+1%>)">下一页</a>&nbsp;&nbsp;
    52                 <a href="javascript:page_nav(document.forms[0],<%=totalpage %>) ">最后一页</a>&nbsp;&nbsp;
    53                 <%
    54                 }
    55                 %>
    分页显示关键点

    表单隐藏域传递代码

    <script type="text/javascript">
        function page_nav(frm,num){
            frm.pageIndex.value=num;
            frm.submit();
        }//go跳转函数
        function jump_to(frm,pegeno){
            var regexp=/^d+$/;
            if(!regexp.test(pegeno)){
                alert("请输入正确数字!");
                return false;
            }else{
                page_nav(frm,pegeno);
            }
            
        }
    </script>
     <form name ="searchForm" id="searchForm" action="/JDBC1/jsp/admin/newsDetailList.jsp" method="post">
    <input type="hidden" name="pageIndex" value="1"/>
    </form>
    <%
                    if(pageIndex>1){
                    %>
                    <a href="javascript:page_nav(document.forms[0],1)">首页</a>&nbsp;&nbsp;
                    <a href="javascript:page_nav(document.forms[0],<%=pageIndex-1%>)">上一页</a>&nbsp;&nbsp;
                    <%
                        }if(pageIndex<totalpage){
                    %>
                    <a href="javascript:page_nav(document.forms[0],<%=pageIndex+1%>)">下一页</a>&nbsp;&nbsp;
                    <a href="javascript:page_nav(document.forms[0],<%=totalpage %>) ">最后一页</a>&nbsp;&nbsp;
                    <%
                    }
                    %>
     <span class="page-go-form"><label>跳转至</label>
          <input type="text" name="inputPage" id="inputPage" class="page-key" />页
          <button type="button" class="page-btn" onClick='jump_to(document.forms[0],document.getElementById("inputPage").value)'>GO</button>
      </span>

    注意当页面404错误时检查路径是否正确;

  • 相关阅读:
    【设计模式】责任者模式
    【Java工具方法】给集合按数量分组
    【Spring】非Spring IOC容器下获取Spring IOC上下文的环境
    【Java】模板方法模式
    【RabbitMQ】CentOS安装RabbitMQ,及简单的Java客户端连接
    【RabbitMQ】RabbitMQ的一些基础概念
    【Spring】简单的Spring AOP注解示例
    【Web】URI和URL,及URL的编码
    【加密】对称加密算法
    【Normal Form】数据库表结构设计所遵从的范式
  • 原文地址:https://www.cnblogs.com/wanghongjie/p/4598621.html
Copyright © 2011-2022 走看看