[知了堂学习笔记]分页之物理分页

一、概念:
分页查询,就是将将过多的结果在有限的界面上分好多页来显示,这个是很多网站常用的功能,也是最基本的功能,今天简单总结一下。
我理解的分页是将数据库的数据,利用一些特殊的sql语句来进行查询,显示理所应当显示的内容,更恰当的说可以是对SQL语句的灵活运用,对逻辑思维的简单使用

二、为什么?
分页查询分为两类:逻辑分页,物理分页,我们先从理论上理解一下:
1、逻辑分页:就是用户第一次访问时,将数据库的所有记录全部查询出来,添加到一个大的集合中,然后存放在session对象,然后通过页码计算出当前页需要显示的数据内容,存储到一个小的list的集合中,并将之存储到request对象中,跳转到JSP页面,进行遍历显示。 当用户第二次访问时,只要不关闭浏览器,我们还会从session中获取数据,来进行显示。为什么叫逻辑分页呢?因为此种方法是在内存的session对象中进行计算分页显示的,而不是真正的将我们数据库进行分页的。
缺点:
- 如果数据量过大,session将消耗大量的内存。
- 因为在session中获取数据,如果第二次或者更多次的不关闭浏览器访问,会直接访问session,不能保证数据是最新的。
总结:使用频率很少,如果数据量小,且数据不会被修改,使用逻辑分页会提高程序的执行效率。
2、物理分页:使用数据库自身所带的分页机制,例如,Oracle数据库的rownum,或者Mysql数据库中的limit等机制来完成分页操作。因为是对数据库实实在在的数据进行分页条件查询,所以叫物理分页。每一次物理分页都会去连接数据库。
优点:数据能够保证是最新的,由于根据分页条件查询出的少了的数据,所以不会占用太多的内存。
缺点:物理分页使用了数据库自身带的机制,所以这样的SQL语句不通用,导致不能进行数据库的移植。
总结:实际中物理分页使用频率较多。

三、物理分页的实现(一种)
1、分页对象(工具类)PageUtil—重点理解:
[知了堂学习笔记]分页之物理分页_第1张图片
[知了堂学习笔记]分页之物理分页_第2张图片
[知了堂学习笔记]分页之物理分页_第3张图片
[知了堂学习笔记]分页之物理分页_第4张图片

2、有了分页对象,我们就可以使用他了,看我们动态测试分页查询的过程。
[知了堂学习笔记]分页之物理分页_第5张图片

3、分页需要涉及到的两类查询:
这里写图片描述
[知了堂学习笔记]分页之物理分页_第6张图片

4、分页查询将数据量分成几批显示到页面上。就像我们的书本,这不过这里的动态,可能因为查询条件的不同,页面的内容就不同,所以灵活应用,弄清楚查询条件,编写好分页查询语句,那么什么问题都解决了


请关注“知了堂学习社区”,地址:http://www.zhiliaotang.com/portal.php

你可能感兴趣的:(spring学习笔记,框架)