为什么需要分页
1. 方便用户查看,提高客户端体验
2. 减轻数据库资源管理器的开销,提高程序运行速度
分页查询的本质
查看某一页就只返回这一页的数据
设计分页时的几个变量
page:页码
pageSize: 每页显示记录的数量
totalPage: 总页数 (必须知道总记录数和每页要显示的记录数)
totalCount: 总记录数 = select count(id) from 表名
因此:
totalPage可以利用以下公式得知:
if(totalCount%pageSize==0)
{totalPage = totalCount/pageSize;}
else{totalPage = totalCount/pageSize + 1;}
hasPreviousPage : 是否显示上一页 (可根据当前页判断)
hasNextPage : 是否显示下一页 (可根据总页数判断)
filter:: 要过滤的记录数(即,查询返回的记录中不包含的记录)
该变量的值又可根据以下公式得知:
filter= pageSize*(page - 1) ;
(假定每页5条记录,即:第一页:过滤前0条,第二页过滤前5条,第三页过滤前10条.........)
_______________________________________________________________________________
常见数据库分页语句:
1. Oracle
假设每页5条记录:
select * from (select e.*,rownum k from emp e 【where 条件】 )where k>(页码-1)*5 and k<=页码*5
2. MySQL
//假设每页10条记录:
int pageSize=10;
int filter= pageSize* (page-1)
select * from 表名 where 主键 is not null limit filter,pageSize
3. SQLServer
假设每页10条记录:
int pageSize=10;
int filter= pageSize* (page-1)
"select top pageSize * from Users where id not in(select top " + filter+ " id from Users) order by id desc";
_________________________________________________________