首页 > 代码库 > 分页查询

分页查询

一、分页查询的优势:

    1.数据清晰直观

    2.页面不在冗长

    3.不受数据量的限制

 

分页查询的实现方法

    1.编写分页查询sql语句

    2.编写分页查询方法

    3.实现分页查询显示

 

二、分页的两个部分

    1.数据分页查询

    2.数据分页显示

 

三、数据分页查询的实现步骤 

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

    2.确定需要显示的数据总数量

      //编写查询信息总数量的sql语句

      String sql="select count(*) from detail";

      //通过JDBC进行SQL语句执行

      Object[] paramas={};

      ResultSet rs=this.executeSQL(sql,params);

      //获取总记录数

      totalCount=rs.getInt(1);

    3.计算显示的页数

      //总页数

      private int totalPageCount=1;

      //页面大小,每页显示的记录数

      private int pageSize=0;

      //记录总数

      private int recordCount=0;

      //设置总页数

      private void setTotalPageCountByRs(){

        if(this.recordCount%this.pageSize==0){

          this.totalPageCount=this.recordCount/this.pageSize;

        }else if(this.recordCount%this.pageSize>0){

          this.totalPageCount=this.recordCount/this.pageSize+1;

        }else{

          this.totalPageCount=0;

        }

      }

    4.编写分页查询SQL语句

    5.实现分页查询

      List<News> newsList-new ArrayList<News>();

      //编写分页查询SQL语句

      String sql="select id,title,author,createdate from

             (select id,title,author,createdate,rowmun rn from detail)

              a where a.rn>=? and a.rn<=?";

      Page page=new Page();

      page.setCurrPageNo(pageNo);//设置当前页码

      page.setPageSize(pageSize);//每页显示记录数

      //计算sql语句的起始记录数以及结束记录数的行数

      int startRow=page.getStartRow();

      int endRow=page.getEndRow();

      Object[] params={startRow,endRow};

      ResultSet rs=this.executeSQL(sql,params);

 

    数据分页查询的实现的关键点:

      1.计算总页数

        如果总记录数能被每页显示记录数整除:

            总页数=总记录数/每页显示记录数

        如果总记录数不能被每页显示记录数整除:

            总页数=总记录数/每页显示记录数+1

      2.计算分页查询时的起始记录数与结束记录数

        起始记录数:(当前页码-1)*每页显示的记录数+1

        结束记录数:当前页码*每页显示的记录数  

四、数据分页显示

 

分页查询