为了使得从数据库取得的数据能够在前台界面友好的展示,需要对这些数据进行分页显示,分页展示一共有两种方式:一种是传统的上一页下一页的方式,另一种方式是瀑布
式加载数据。
这里不谈这两种分页的展示方式,来了解一下常见的分页实现方式都有哪些:
1、 使用list接口中的subList(int startIndex, int endIndex)方法实现分页
这种方式实现了查询从startIndex到endIndex之间的数据列表。
2、使用sql语句实现分页
mysql数据库:使用limit数据库 如: select * from student limit 0,10 查询从0条数据开始的10条记录。
oracle数据库:使用子查询来实现分页。 如: select * from (select s.*, rownum rn from (select * from student) s where rownum <= 10)where rn >=1
3、使用hibernate、mybatis等框架实现跨数据库的分页
hibernate:需要创建criteria或者Query对象,查询时设置firstResult和maxResults参数,firstResult代表从哪条开始查,maxResults代表查询多少条。
String hql = "from student";
Query q = session.createQuery(hql);
q.setFirstResult(0);
q.setMaxResults(10);
List list = q.list();
三种方式比较:
第一种方式简单,易用,但是效率低,每次都要把所有数据查询出来;第二种方式简单直接效率高,但是数据库兼容性低,适合不要求数据库兼容性的场景;第三种方式:
面向对象,数据库兼容性强,但是复杂查询效率相对低一些。