技术分享|分页实现思路

2019-11-28 14:07:35

 虽然现在有很多好用的框架,对分页进行支持,很简单的就把分页的效果做出来,但是如果自己手写是一个怎样的流程的?手动实现分页效果。

问题一分页的思路?
首先在前端上一定是有一个控制分页的控件
这个控件至少应该具有:上一页、下一页、第几页、共几页这些数据信息。
前端其实就很简单了只要绘制出来UI通过事件将跳转的页数通过接口传给后端即可。那么问题来了,后端该如何去正确的处理数据并将有效的分页数据给前端返回呢?
其实在后端代码实现前我们要思考一个问题,数据库该如何实现数据的分页获取?
我们知道sql是 select * from xxx limit 1,3  使用了关键字limit那后面的两个数字又代表什么呢?
1代表从第一条数据查起
3代表要查3条数据
现在的问题就是后面的参数如何替换?
 
我们知道当在第一页时:
当前页数为1;int currentPage      前端给传的
总页数 = 总条数%每页的条数==0?总条数/每页的条数:总条数%每页的条数+1
每页的条数 int pageSize = 3  当前先定死
如此可知SQL语句:select * from product limit (currentPage-1)*pageSize,pageSize;
 
为了保证数据的可用性及稳定性,我们可以将以上的已知数据进行一个封装。如下:
这就是一个分页导航,其中能得到的数据有
 
        totalRecord:总共员工数,数据库中总的记录数,这里有55条
 
        totalPage:总页数,11页
 
        pageSize:每页显示的记录数,这里可以看到每页显示5条
 
        pageNum:当前页为第几页,比如图中就为第9页,因为9是没有超链接的,
 
        start:总共能显示5页,让用户进行点击,7为起始页
一、创建PageBean存放数据
 
       PageBean.java
 
        总共需要8个属性pageNum、pageSize、totalRecord、totalPage、startIndex、list、start、end,
 
        pageNum、pageSize、totalRecord:通过构造方法就能得到。pageNum请求页面提交过来的参数,pageSize是自己设置的,totalRecord是查询数据库得到的
 
          totalPage、startIndex、start、end是通过内部算法得出,
 
          list需要通过查询数据库在通过set方式得到。
 
        注意:该类使用泛型是为了不仅仅在这个项目中使用,在别的项目中也同样可以使用,
二、在service层编写业务逻辑代码
 
      其实就是在该层将我们所需要的PageBean对象构建好,返回给上一层
好了,以上就是实现分页的思路,同学们首先是要掌握方法,剩下就是要多加练习。
 

本文由中软卓越(西安)汇集整理,转载请注明作者及出处。

如需学习java、UI设计、软件测试、Python、大数据、嵌入式、Linxu云计算,请点击咨询,加入我们让你的未来不再迷茫。

关于我们

【中软卓越】-中软国际旗下高端教育品牌,是中软国际有限公司投资的大型人才服务机构,是中软国际人才战略的核心组成部分之一,承担集团发展过程中人才储备和培养的任务;专注IT培训37年,国内高端IT培训品牌,教育部指定官方IT人才培训机构。专注java培训、UI设计培训、软件测试培训、Python培训、大数据培训、嵌入式培训、Linxu云计算培训等培训课程。217家合作院校,880家合作企业,真实项目实战,素质拓展,职业规划。零首付,100%保障就业,先就业,后付款。

最牛逼的毕业学员入职名企享受高薪就业。880家合作企业,年培育学员人数逾6000人,毕业学员就职于中软国际、百度、腾讯、阿里巴巴、IBM、华为科技、中兴通讯、软通动力等知名企业。

还有什么疑问?我们全面为你解答!为您提供一对一专人服务,请点击下方咨询

  • 卓越资讯
  • 猜你想看
  • 常见问题

    Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。[详细课程]

    软件开发是根据用户要求建造出软件系统或者系统中的软件部分的过程;软件开发是一项包括需求捕捉、需求分析、设计、实现和测试的系统工程。[详细课程]

    软件测试是在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。[详细课程]

    Python是一种面向对象的解释型计算机程序设计语言,语法简洁清晰,特色之一是强制用空白符作为语句缩进,它常被昵称为胶水语言,能够把用其他语言制作的各种模块。[详细课程]

    UI设计分为实体UI和虚拟UI,互联网说的UI设计是虚拟UI,一般是指对软件的人机交互、操作逻辑、界面美观的整体设计。[详细课程]

    大数据,又称巨量资料,指的是所涉及的数据资料量规模巨大到无法通过人脑甚至主流软件工具,在合理时间内达到撷取、管理、处理、并整理成为帮助企业经营决策更积极目的的资讯。[详细课程]

    云计算是一种按使用量付费的模式,这种模式提供可用的、便捷的、按需的网络访问, 进入可配置的计算资源共享池(资源包括网络,服务器,存储,应用软件,服务),这些资源能够被快速提供,只需投入很少的管理工作,或与服务供应商进行很少的交互。[详细课程]

    西安市长安北路8号高速大厦三楼

    电话:029-61876930