您的位置:首页 > 其它

分页的核心思想

2018-01-30 20:32 134 查看
原生的分页无论是哪种编程语言都是一样的。用java来说明:分页功能的实现有两种。

第一种:物理分页  比如一次只查询10条记录,点击下一条,再查询10条。使用sql语句控制分页

 缺点:经常与数据库交互

 优点:数据量大时,不会导致内存溢出

  注意:不同的数据库对分页的语句时不一样的

 
mysql进行分页:使用limit关键字(limit a ,b --a 表示从哪开始 --b表示查询的记录数)

 oracle进行分页:sql语句的嵌套

   
SQL Server 数据库:top关键字

第二种:逻辑分页   比如一次性查询100条记录,根据需求进行截取。List集合进行控制

 
缺点:当数据量大时,容易导致内存溢出

  以常用的分页条为例:【首页】  【上一页】[1] [2] [3]
[4]【下一页】 【尾页】

第一步:原生的分页就是写一个pageBean。其中包含五个变量:currentPage(当前页的页数),totalPage(总的页数),  pageSize(每一页显示的记录数),totalCount(查询的总记录数),List<>
list(每页的数据的集合)

第二步:pageSize是手动赋值,也可以动态传值

第三步:向后台传递当前页的页码    因为用的是mysql数据库,操作分页用的是limit关键字,limit后面需要两个参数,下面根据 
页数计算limit后面的两个参数的值

   举个例子:
currentPage (当前页) begin(开始的位置) pageSize(每页显示的记录数)

     1      
0   
10

  
2      10   
10

     
3      20   
10

begin
= (currentPage-1)*pageSize;

参数的传递:

 1. 前台向后台传递的数据:currentPage

2. 后台向前台传递的数据:curentPage,totalPage(总页数),totalCount(总记录数),pageSize,List集合(查出的数据)

 ps:
总页数是根据总记录数算出来的,向上取整(Math.ceil())。注意传参时数据类型的转换第四步:根据总记录数查询到总页数

第五步:设置每页显示的数据的集合
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: