《java分页原理及实现方式.doc》由会员分享,可在线阅读,更多相关《java分页原理及实现方式.doc(2页珍藏版)》请在金锄头文库上搜索。
1、Java分页原理及常用分页方法什么是分页技术分页,是一种将所有数据分段展示给用户的技术.用户每次看到的不是全部数据,而是其中的一部分。如果在其中没有找到自习自己想要的内容,用户可以通过制定页码或是翻页的方式转换可见内容,直到找到自己想要的内容为止.其实这和我们阅读书籍很类似,我们不能把整本书的全部内容写在一页纸上。为什么要分页?1、加载少量数据,减少客户的和服务器数据交互,降低服务器压力。2、增强用户体验,每次加载数据量少,加载速度自然就快,用户体验就好。常见分页样式:1、 传统分页(分页工具栏),如百度的分页:2、 自动加载:如QQ空间下拉自动加载数据传统分页与下拉式分页对比传统分页可以明确
2、数据信息,数量等;下拉式无法明确数据量等信息,分页后之前从信息还在页面上。常见分页实现方式1. Java程序分页的实现主要是用List 接口中的subList(int startIndex,int endIndex)方法,这种方式也称为程序内存分页。2. 使用数据库的SQL语句实现数据分页。适用于数据量较大,访问频度较低的操作。如果数据量大,访问频度又高,可以参考大数据分页。关于内存分页当数据量较小时推荐使用。使用subList进行分页时,如果数据量比较大是一个非常耗费系统资源的方案。目前web项目有许多分布式系统,可能有多个系统访问同一个数据库,那么对数据库的开销就比较大了,这时可以考虑对内
3、存分页进行优化,例如利用程序缓存处理机制等。其实真正的内存分页不是那么简单的事情,要实现一个完整的通用的机制,不是一两个小时就能搞定的。首先有一个数据记录的服务器缓存问题,然后才是数据记录分页问题,这个相对好解决一点,但第一个问题就不太好组织。因为缓存问题涉及到数据的缓存位置,缓存时间,删除时间和利于查询的数据组织问题。数据库分页:数据库分页的原理比较明确了,根据需要取结果集中的一部分就是了,没什么好说的。其实这样有时候数据缓存在数据库系统内,可能比内存分页要智能一点。SQL分页使用SQL语句实现分页使用数据库自带的分页语法,获取分页数据,如MySQL的limit关键字,oracle的rown
4、um关键字等以下是常见的分页SQL语句1. MySQL分页查询语句:Select * from t_table limit 1,10;2. PostgreSQL分页查询语句Select * from t_table limit 10 offset 0;3. Oracle分页查询SQL:Select * from (Select t.*,rownum rn from t_table t where rownum =1;4. 使用hibernate框架进行分页:创建query或者Criteria对象,查询时,设置firstResult和maxResult属性eg:String hql = “from student_table”;Query q = session.createQuery(hql);q.setFirstResult(0);q.setMaxResult(10);List l = q.list();5. Mybatis分页由于mybatis的SQL语句一般都是通过配置文件手工写的,可以直接参考SQL分页。