分享人:黄震
1.背景介绍
2.知识剖析
3.常见问题
4.解决方案
5.编码实战
6.扩展思考
7.参考文献
8.更多讨论
由于在项目中需要在页面上显示数量非常多的数据, 在进行数据库查询时首先会把所有的数据都查询出来,然后在进行显示,这时候分页查询的操作就必不可少了。
1.逻辑分页概述
就是用户第一次访问时,将数据库的所有记录全部查询出来,添加到一个大的集合中,然后存放在session对象,然后通过页码计算出当前页需要显示的数据内容, 存储到一个小的list的集合中,并将之存储到request对象中,跳转到JSP页面,进行遍历显示。 当用户第二次访问时,只要不关闭浏览器,我们还会从session中获取数据,来进行显示。
因为此种方法是在内存的session对象中进行计算分页显示的,而不是真正的将我们数据库进行分页的。
2.物理分页概述
使用数据库自身所带的分页机制,例如,Oracle数据库的rownum,或者Mysql数据库中的limit等机制来完成分页操作。 因为是对数据库实实在在的数据进行分页条件查询,所以叫物理分页。每一次物理分页都会去连接数据库。
逻辑分页的缺点
a,如果需要查询的数据量过大,session将耗费大量的内存;
b,因为是在session中获取数据,如果第二次或者更多此的不关闭浏览器访问,
c,会直接访问session,从而不能保证数据是最新的。这种分页很少使用。
但是在数据量小,不会被修改的数据,使用逻辑分页会提高程序的执行效率数据。
物理分页的优缺点
优点:数据能够保证最新,由于根据分页条件会查询出少量的数据,所以不会占用太多的内存。
缺点:物理分页使用了数据库自身带的机制,所以这样的SQL语句不通用,导致不能进行数据库的移植。
实际应用中的使用
小结:在实际中物理分页还是使用的较多的。
物理分页的优缺点
优点:数据能够保证最新,由于根据分页条件会查询出少量的数据,所以不会占用太多的内存。
缺点:物理分页使用了数据库自身带的机制,所以这样的SQL语句不通用,导致不能进行数据库的移植。
小结:在实际中物理分页还是使用的较多的。
分页查询
http://blog.csdn.net/liujiahan629629/article/details/19698091
http://www.cnblogs.com/xiekeli/p/5607107.html
甘乐师兄
By:黄震