1.网站中常见的分页样式
1)采用传统的分页方式,可以明确获得数据信息,如有多少数据,显示多少页等
2)采用下拉式的分页方式,一般无法获取明确的数据数量相关的信息,但是在分页操作之后,仍然可以看到之前查询的数据。
2.常见的分页方式
1)使用List接口中的subList(int startIndex,int endIndex)方法实现分页
List<E> |
subList(int fromIndex, int toIndex) 返回列表中指定的 fromIndex(包括 )和 toIndex(不包括)之间的部分视图。 |
2)直接使用数据库的sql语句进行分页的实现
利用数据库自带的分页语法,使用分页语句,获得分页数据,如mysql使用limit,oracle使用rownum关键字等
Mysql查询语句:
select * from t_teacher limit 0,10
表示从t_student这张表的第0个记录开始查找10条记录。
PostgreSQL查询语句:
select * from t_teacher limit 10 offset 0
Oracle查询语句:
select * from
(
select s.*,rownum rn
from(select * from t_teacher)s
where rownum <= 10
)
where rn>=1
3)使用hibernate等框架技术直接实现跨数据库的分页
创建Query或者Criteria对象,查询时设置firstResult和maxResults属性
firstResult表示从第几条开始查询,maxResults表示查询多少条的数据
String hql = "from Student";
Query q = session.createQuery(hql);
q.setFirstResult(0);
q.setMaxResults(10);
List l = q.list();
3.常见的分页方式的实现比较
实现方式 | 优点 | 缺点 | 适用场景 |
subList | 简单易用 | 效率低 | 无法按需批量获取数据 |
SQL语句 | 简单,直接,效率高 | 数据库兼容性差 | 不要求数据库兼容性 |
hibernate框架 | 面向对象,兼容性强 | 复杂查询性能低 | 兼容不同的数据库 |