逻辑上进行分页,实际并没有分页操作。
一次性把所有数据查询出来,但是在展示的时候只显示其中某一部分。
在逻辑上进行分页,实际操作时也进行分页。
查询时就只查某一页的数据。无论数据库表中一共有多少条记录,一次只查其中一页的数据。
sql查询时就需要分页。
为了数据传递和操作方便,我们把上述5个数据封装到一个对象中,起名为PageBean。
currentPage rows
原则:缺什么补什么。
查询数据库:查询总数据量,查询数据列表
计算开始索引 = (currentPage - 1) * rows
4. 在Service中调用DAO方法把需要从数据库获取的数据得出来
5. 在DAO中实现数据库查询的两个方法
limit m,n
m: 开始索引
n: 查询的数据条数
6. 把PageBean返回到Servlet中,存入到request域,转发到list.jsp中
7. 在list.jsp中,使用EL+JSTL回显分页数据
分页条处理
1. 页码最好不要从1遍历到最后一页,自行处理一下开始和结束的页码
2. 分页条边界值处理
前台要做有效性校验
后台也要做有效性校验
在Service中进行校验
条件查询
在分页查询的基础上,额外获取查询条件进行sql的拼接。
如何动态生成sql?
使用一个恒等式把主体sql中的where关键字给确定下来,然后所有的额外条件只需要拼接and语句即可。
select * from user where 1=1
[and name like ?]
[and address like ?]
[and email like ?]
limit ?,?
原文:https://www.cnblogs.com/maomaodesu/p/12109725.html