当前位置:网站首页 > Java教程 > 正文

java分页菜鸟教程




  Java项目开发中经常要用到分页功能,现在普遍使用SpringBoot进行快速开发,而数据层主要整合SpringDataJPA和MyBatis两种框架,这两种框架都提供了相应的分页工具,使用方式也很简单,可本人在工作中除此以外还用到第三种更方便灵活的分页方式,在这里一同分享给大家。



主要分为SpringDataJPA分页、MyBatis分页、Hutools工具类分页几个部分


1、SpringDataJPA分页

1)、引入依赖

 

2)、Service中编写分页服务

  SpringDataJPA分页就是定义Pageable对象来处理分页,其中PageRequest来定义分页参数,Page对象来接手查询结果进行分页包装,包装后的结果pageResult可以得到总记录数、总页数、分页列表等数据结果。

 

3)、Repository中处理分页

  这里就是继承JpaRepository对象,然后传入service中定义好的pageable对象,并且返回Page包装的结果即可。

 

2、MyBatis分页

1)、引入PageHelper依赖

 

2)、使用PageHelper实现分页

 

3、Hutools工具类分页

1)、引入依赖

  这里是可以单独引入hutools部分工具类的,具体参考官网文档,我平时写项目一定会使用这个工具,所以直接引入了所有。

 

2)、分页实现

  一般就用到两个工具类,一是PageUtil.totalPage(总记录数, 每页记录数)来计算总页数,二是CollUtil.page(索引, 每页记录数, 数据列表)来返回指定分页结果,注意这里的索引是从1开始的,和SpringDataJPA分页索引从0开始有区别。

 



  1)、注意 :为了方便演示代码中直接用了Map对象来包装返回分页结果,在实际项目中,切记一定要自己定义实体对象作为返回结果,因为Map对象返回的结果如果是动态且数据量较大的列表,是存在造成内存泄露风险的,举个例子,比如返回10条问诊的分页记录时,其中聊天内容这个属性包含大量聊天数据,因为你无法确定对话的两个人到底聊了多少,可它确实作为一个属性包含在分页记录中;


  2)、SpringDataJPA分页,就是使用自带的Pageable对象来处理,需要注意的是分页索引从0开始,传错了会造成分页结果错乱或重复的现象;


  3)、Mybatis分页,就是借助PageHelper工具来实现,PageHelper.startPage和PageHelper.clearPage中间是需要分页的业务查询代码,可以通过PageInfo对象包装,获取其中需要的分页参数返回给前端展示;


  4)、Hutools分页,就是引入hutools工具类,使用其中的PageUtil和CollUtil工具类来实现,这种方式我个人比较喜欢,因为在较复杂的查询业务中,前两种实现起来很费劲还容易写错,不仅可能牵扯到多个类及方法,写完后过段时间也不容易阅读。而Hutools分页就类似于很早以前的分页方式,我把它理解为绿色简易版JSP分页,只需在服务层使用一个工具类分页即可,既灵活又便于阅读,简直是分页的神器。



  本人文章从来都是纯手打,且都来自实际工作中的经验及分享,如果觉得有一滴滴帮助,就点个推荐吧!(o..o)~


  • 上一篇: java105教程
  • 下一篇: java开发app教程
  • 版权声明


    相关文章:

  • java105教程2024-12-15 18:26:00
  • java mapper教程2024-12-15 18:26:00
  • java语言经典教程2024-12-15 18:26:00
  • java jframe教程2024-12-15 18:26:00
  • java362集教程2024-12-15 18:26:00
  • java开发app教程2024-12-15 18:26:00
  • java基本编写教程2024-12-15 18:26:00
  • 长春java教程2024-12-15 18:26:00
  • java网络编程教程2024-12-15 18:26:00
  • java边框教程2024-12-15 18:26:00