分页问题学习及一些小结

本文详细介绍了如何实现一个分页系统,从数据库查询到页面展示的全过程。讲解了Page类的设计,包括页码、每页大小、总记录数、总页数等属性,以及在DAO、Service和Servlet层的实现。同时,讨论了页面中分页链接的生成和动态显示,以及通过jQuery实现跳转功能。最后,提出分页显示优化方案,根据当前页动态调整显示范围,提高用户体验。
摘要由CSDN通过智能技术生成

分页问题学习及一些小结

1.首先我们想象一下我们的分页页面中有哪些内容

 

               
       
 
 
 
 

        

        

        

        

 
 

然后我们知道查询分页数sql 语句是:

Select * frombs_book limit index, pageSize

所以加一个字段       index

        

 

这样我们就分析出来Page<T>类(泛型 是因为我们以后可能还要对别的不仅是图书分页)

class Page<T>

//页码

//这个我们可以从前台获取回来

pageNumber 

//我们也可以通过前台设置 或者我们在Servlet中设置其大小 也就是每页显示的条数

pageSize

 

//查询要用到的下标

index  //这个我们是通过计算得到的  index = (pageNumber-1)* pageSize

 

//总的记录数

totalRecord //我们通过数据库 便可以查询的到

//总的页数我们也可以通过计算得到

totalPage  //(totalRecord -1 ) / pageSize + 1

 

//查询到的数据列表

List<T>  data;//通过数据库sql  = Select * from bs_book limit index, pageSize

 

2.我们利用创建好的page类就可以封装对象啦

  a.首先我们拿到的page 对象 他的pageSize  和 pageNumber 是有的

所以接下来 我们应该设计BookDao 增加一个 查询分页图书的方法

Page<Book>findPage(page<Book> page);

  b.我们在其实现类中 实现其方法

Page<Book>findPage(page<Book> page){

   //首先我们可以通过数据库查询到page对象中总记录数

   String sql = “select count(*)  from bs_book ”

     //调用baseDao中的getSingleValue()注意这查询出来的是long 类型的我们必须得强转

     long total Rcord = (long)this.getSingleValue(sql);

 

     //设置这个totalRecord到page中

     page.setTotalRecord((int) total Rcord);

     //获取index

     Int index = page.getIndex();

     然后我们就可以查询数据库了

     sql = selet title … from bs_book limit ?,?;

     List<Book> list = this.getBeanList(sql,index,page,getPageSize());

  //然后将查询到的list放进page中

  page.setData(list);

  return page;

}

 

c.接下来我们可以完成我们的Service方法了

BookService接口 新增添一个方法

Page<Book>findPage(String pageNumber, int pageSize);

那么我们就在实现类中实现这个方法

Page<Book>findPage(String pageNumber, int pageSize){

       //我们得对这个pageNumber进行强转 , 但我们需要得考虑 万一强转失败之后的一些问题

   所以我们先默认一个值为1

    int pn = 1;

    try{

                pn =Integer.parseInt(pageNumber);

}catch(){}

    然后创建page对象

    Page<Book> page = newPage<Book>();

    page.setPageNumber(pn);

    page.setPageSize(pageSize);

    //然后调用BookDao中的findPage()方法 获取到完整的page对象

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值