![1052ad7e2fef63313968e8222aebe0db.png](https://img-blog.csdnimg.cn/img_convert/1052ad7e2fef63313968e8222aebe0db.png)
【分页】
分页
1.分页概念引入
![3b3106fbbd8864f2d22d9fd1b5daaca2.png](https://img-blog.csdnimg.cn/img_convert/3b3106fbbd8864f2d22d9fd1b5daaca2.png)
![f3917c1bbefc4cb6c1fcb4b559daeb02.png](https://img-blog.csdnimg.cn/img_convert/f3917c1bbefc4cb6c1fcb4b559daeb02.png)
什么是分页?
分页(英语:Paging),是一种操作系统里存储器管理的一种技术,可以使电脑的主存可以使用存储在辅助存储器中的数据。操作系统会将辅助存储器(通常是磁盘)中的数据分区成固定大小的区块,称为“页”。当不需要时,将分页由主存(通常是内存)移到辅助存储器;当需要时,再将数据取回,加载主存中。相对于分段,分页允许存储器存储于不连续的区块以维持文件系统的整齐。分页是磁盘和内存间传输数据块的最小单位。
分页/虚拟内存能有助“大大地”降低整体及额外非必要的 I/O 次数,提高系统整体运作性能。因为这能有助提高 RAM 的读取命中率,也透过其内部的高效率算法来达到 I/O 数据流的预缓存工作,通过与之相关的等等手段也能很好地提高了 CPU 的使用效率,而拥有大物理内存的用户更可能考虑利用如Ramdisk、Supercache、SoftPerfect RAM Disk等模拟出硬盘分区来同时将虚拟内存/系统临时文件等设置其上以进一步加强系统性能,及达至保障硬盘的措施。分页是虚拟内存技术中的重要部分。
简单来说:大量数据无法一次性全部显示在网页上?怎么办?只能选取其中的一部分,将大量数据分成好几段,每一段我们用一个网页显示,也就是一页,在页面上我们可以手动控制我们要选择的页面.分页就是将大量数据分成很多页显示的一种处理手段。
分页有什么好处?
1.通过分页,我们不用一次性将所有的数据查出来,只需先查出来一部分,可以减少数据库的IO数据量的传输,降低数据库读写压力,从而提高数据库响应速度
2.页面也不用一次性显示所有的数据,可以减少浏览器和服务器之间大量数据的IO传输,从而提高服务器的响应速度
3.我们可能值需要很多信息中少数的几条,那么传输其他多余的数据就是无形之中对于资源的浪费,分页可以减少资源的浪费
数据库上如何实现分页查询?
select
sql语句通过limit关键字实现数据的分页查询, limit后面可以放两个整数作为参数,前一个参数的意义为从那条数据开始查询,后一个参数的意义是连续取出多少条
如果查询 第n 页,每页x条 数据那么sql语句应该写成
Select
分页查询的sql语句代码公式为:SELECT * FROM emp LIMIT (页码数-1)*页大小,页大小
2.分页实现的思路
目标效果:
![dd554dcf275e87e017f9b2e492375db6.png](https://img-blog.csdnimg.cn/img_convert/dd554dcf275e87e017f9b2e492375db6.png)
实现思路
浏览器向后台发送的信息应该是什么?
参数1: 要查询的是第几页
参数2: 页大小
服务器向浏览器返回的数据应该是什么?
数据1: 当前页的所有信息 List<Object>
数据2: 当前第几页 currentPage
数据3: 信息总条数 totalsize
数据4: 总页码数 totalpage
数据5: 页大小 size
![83f6fc65d5ac4ba0ba4dedd65b92a331.png](https://img-blog.csdnimg.cn/img_convert/83f6fc65d5ac4ba0ba4dedd65b92a331.png)
3.分页数据准备及项目搭建
3.1 数据的准备
![8d2f9528d07016584062d2d628c77ef5.png](https://img-blog.csdnimg.cn/img_convert/8d2f9528d07016584062d2d628c77ef5.png)
CREATE
3.2 包结构
![be8e789b7cfa09eb7aeeb32dd7b655fd.png](https://img-blog.csdnimg.cn/img_convert/be8e789b7cfa09eb7aeeb32dd7b655fd.png)
3.3 导入jar包
![2a9e35a7e231f9e2981d51ac13b02639.png](https://img-blog.csdnimg.cn/img_convert/2a9e35a7e231f9e2981d51ac13b02639.png)
3.4 pageBean工具类准备
public
3.5 实体类准备
public
4同步方式实现分页
4.1分页的后台代码
Mapper
public
映射文件
<?xml version="1.0" encoding="UTF-8"?>
servcie
package
Controller
package
4.2分页的前端代码
![d3d60e297c753690c4c8f4b9932e411d.png](https://img-blog.csdnimg.cn/img_convert/d3d60e297c753690c4c8f4b9932e411d.png)
页面代码
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
5异步实现分页
5.1后台代码
pagebean修改
public
StudentController2
package
5.2前端代码
studentList2.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
本节作业
实现查询的同步和异步案例