原生的分页无论是哪种编程语言都是一样的。用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())。注意传参时数据类型的转换第四步:根据总记录数查询到总页数
第五步:设置每页显示的数据的集合