一、分页查询介绍
为什么要分页查询?
1.对于用户体验来说,一页展示所有的数据,眼花缭乱,不便于查找需要的内容,体验较差。
2.对于mysql服务器来说,一次性查询所有的数据,服务器的负担较重,如果有几十万、上百万条数据,如果一次性查询所有,将会是一个灾难
分页查询原理:
把数据表中的所有的数据,分成很多也页来展示,例如:
有100条记录,指定每页显示5条,那么将会分20页来展示这些记录
分页查询sql语句:
SELECT * FROM user LIMIT offset,rows;
limit offset limit;
offset,偏移量,又称为”略过”多少条数据
limit,限制量,也就是限制查询多少条数据
例如:
limit 5,2; 表示略过前面的5条记录,查询后面的2条
二、分页数据封装
由于不仅查询用户列表时,需要分页查询,查询商品列表、订单列表、优惠券列表等时,都需要分页展示,所以我们要将分页的数据进行封装
声明一个PageBean,封装分页的数据,例如:
在UserListServlet中,将之前的一次性查询所有用户的方法修改为分页查询
编写service业务层代码
编写dao层代码
目的就是在SQL语句中拼接:LIMIT offset,pagesize;
由于将PageBean对象存储到request域对象,所以我们在list.jsp中重新遍历
由于list.jsp代码过于繁琐,直接参考 list.jsp 文件
三、多条件搜索用户
分析思路:
分页查询的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页面中,表单的提交地址
在UserListServlet中,接收表单提交过来的数据
最后,在dao层,获取map集合中的条件,然后拼接到sql语句中