怎么进行分页数据的查询,

如何判断是否有下一页?

Java小课堂 BY武汉分院

分享人:黄震

1.背景介绍

2.知识剖析

3.常见问题

4.解决方案

5.编码实战

6.扩展思考

7.参考文献

8.更多讨论

1.背景介绍

由于在项目中需要在页面上显示数量非常多的数据, 在进行数据库查询时首先会把所有的数据都查询出来,然后在进行显示,这时候分页查询的操作就必不可少了。

2.知识剖析

1.逻辑分页概述

就是用户第一次访问时,将数据库的所有记录全部查询出来,添加到一个大的集合中,然后存放在session对象,然后通过页码计算出当前页需要显示的数据内容, 存储到一个小的list的集合中,并将之存储到request对象中,跳转到JSP页面,进行遍历显示。 当用户第二次访问时,只要不关闭浏览器,我们还会从session中获取数据,来进行显示。

因为此种方法是在内存的session对象中进行计算分页显示的,而不是真正的将我们数据库进行分页的。

2.物理分页概述

使用数据库自身所带的分页机制,例如,Oracle数据库的rownum,或者Mysql数据库中的limit等机制来完成分页操作。 因为是对数据库实实在在的数据进行分页条件查询,所以叫物理分页。每一次物理分页都会去连接数据库。

3.常见问题

逻辑分页的缺点

a,如果需要查询的数据量过大,session将耗费大量的内存;

b,因为是在session中获取数据,如果第二次或者更多此的不关闭浏览器访问,

c,会直接访问session,从而不能保证数据是最新的。这种分页很少使用。

但是在数据量小,不会被修改的数据,使用逻辑分页会提高程序的执行效率数据。

物理分页的优缺点

优点:数据能够保证最新,由于根据分页条件会查询出少量的数据,所以不会占用太多的内存。

缺点:物理分页使用了数据库自身带的机制,所以这样的SQL语句不通用,导致不能进行数据库的移植。

实际应用中的使用

小结:在实际中物理分页还是使用的较多的。

4.解决方案

物理分页的优缺点

优点:数据能够保证最新,由于根据分页条件会查询出少量的数据,所以不会占用太多的内存。

缺点:物理分页使用了数据库自身带的机制,所以这样的SQL语句不通用,导致不能进行数据库的移植。

小结:在实际中物理分页还是使用的较多的。

5.编码实战

6.扩展思考

7.参考文献

分页查询

http://blog.csdn.net/liujiahan629629/article/details/19698091

http://www.cnblogs.com/xiekeli/p/5607107.html

8.更多讨论

9.鸣谢

甘乐师兄

谢谢观看

By:黄震