分为物理分页和逻辑分页
- 物理分页:每次去数据库中值查询当前页的数据(推荐)
- 逻辑分页:一次性将所有的数据查询出来,放入list中,查询指定页的数据只需要去list(sublist方法)中截取即可.
mysql中分页 limit
- select … from … limit m,n;
- m:开始的索引 (查询的页码-1)*每页显示的条数
- n:向后查询的条数(每页显示的条数)
页面上要展示哪些内容(servlet需要组织和查询的内容):
- 当前页的数据集合
- 当前页码
- 总页数
- 每页显示的条数
- 总记录数
为了方便在各层之间传递数据,把上面的5个参数需要进行封装(PageBean)
- List<T> dataList;//当前页的数据集合,查询出来 limit查询出来,依赖当前页和每页显示的条数
- int pageNumber;//当前页码,前台传递过来(已知)
- int totalPage;//总页数,通过总记录数和每页显示的条数进行计算得来
- int pageSize;//每页显示的条数, 可以自定义或者前台传递过来(已知)
- int totalRecord;//总记录数 通过count(1)查询出来
PageBean:
方法:
- 提供了一个构造器,在创建的时候就把pageNumber和pageSize设置好了
- 提供一个获取开始索引的方法 getStartIndex
- 只需要提供一个getTotalPage(), 不需要提供set方法