分页的方法很多,但基本思路如下:
(1)确定每页记录数。
(2)获取记录总数。目的用于确定总分页数。
(3)确定分页后的总页数。公式:总页数=(总记录数-1)/每页显示的记录数+1,因为如果有余数,需要总页数加1,所以修改后的公式如上。
(4)根据当前页数显示数据。如果该页数小于1,则使其等于1;如果大宇最大页数,使其等于最大页数。
(5)通过for循环语句分页显示查询结果。
下面介绍两种方法:
1、MySQL数据库分页
MySQL数据库提供了LIMIT函数,利用该函数可轻松实现数据分页;LIMIT函数用来限制SELECT查询语句返回的行数。
例子:String sql="select * from user order by id limit "+(currPage-1)*pageSize+","+pageSize;
注:currPage是当前页,pageSize是每页显示多少数据。
2、Hibernate分页
Hibernate分页主要通过其提供的setFirstResult()和setMaxResults()方法实现。
(1)setFirstResult()方法:用于检索数据开始索引位置,索引位置的起始值为0;
(2)setMaxResults()方法:用于计算每次最多加载的记录条数;
例:Query q=session.createQuery("from User");
q.setFirstResult((currPage-1)*pageSize);
q.setMaxResults(pageSize);