文章目录

  • 一、分页查询介绍
  • 二、分页数据封装
  • 三、多条件搜索用户


一、分页查询介绍

为什么要分页查询?
1.对于用户体验来说,一页展示所有的数据,眼花缭乱,不便于查找需要的内容,体验较差。
2.对于mysql服务器来说,一次性查询所有的数据,服务器的负担较重,如果有几十万、上百万条数据,如果一次性查询所有,将会是一个灾难

分页查询原理:

把数据表中的所有的数据,分成很多也页来展示,例如:

有100条记录,指定每页显示5条,那么将会分20页来展示这些记录

MySQL分页查询语句 mysql分页查询原理_mysql


分页查询sql语句:

SELECT * FROM user LIMIT offset,rows;

limit offset limit;
offset,偏移量,又称为”略过”多少条数据
limit,限制量,也就是限制查询多少条数据

例如:
limit 5,2; 表示略过前面的5条记录,查询后面的2条

二、分页数据封装

MySQL分页查询语句 mysql分页查询原理_java_02


由于不仅查询用户列表时,需要分页查询,查询商品列表、订单列表、优惠券列表等时,都需要分页展示,所以我们要将分页的数据进行封装

声明一个PageBean,封装分页的数据,例如:

MySQL分页查询语句 mysql分页查询原理_mysql_03


在UserListServlet中,将之前的一次性查询所有用户的方法修改为分页查询

MySQL分页查询语句 mysql分页查询原理_java_04


编写service业务层代码

MySQL分页查询语句 mysql分页查询原理_java_05


编写dao层代码

目的就是在SQL语句中拼接:LIMIT offset,pagesize;

MySQL分页查询语句 mysql分页查询原理_sql_06


由于将PageBean对象存储到request域对象,所以我们在list.jsp中重新遍历

由于list.jsp代码过于繁琐,直接参考 list.jsp 文件

三、多条件搜索用户

MySQL分页查询语句 mysql分页查询原理_MySQL分页查询语句_07


分析思路:

分页查询的SQL语句:
SELECT * FROM user LIMIT 0,2;

多条件搜索:
SELECT * FROM user WHERE name LIKE ‘张%’ AND address LIKE ‘xx%’ AND email = ‘xx%’
LIMIT 0,2;

所以,多条件搜索的思路就是:在原来的SQL语句的基础上,拼接上WHERE条件

修改list.jsp页面中,表单的提交地址

MySQL分页查询语句 mysql分页查询原理_sql_08


在UserListServlet中,接收表单提交过来的数据

MySQL分页查询语句 mysql分页查询原理_sql_09


MySQL分页查询语句 mysql分页查询原理_sql_10


最后,在dao层,获取map集合中的条件,然后拼接到sql语句中