分页插件

两个都用于分页,常用的应该是PageHelper了,

使用方法是 PageHelper.startPage()然后后边写sql就可以。 紧接着的一个sql起作用。
IPage则需要在dao层传入IPage的实现类Page对象,该对象实现了IPage。
区别:
PageHelper内部原理是将传入的页码和条数赋值给了Page对象,保存到了一个本地线程ThreadLoacl中,然后会进入Mybatis的拦截器中。
然后再拦截器中获取本地线程中保存的分页的参数。最后再将这写分页参数和原本的sql以及内部定义好的sql进行拼接完成sql的分页处理。
中间会进行判断该sql 的类型是查询还是修改操作。如果是查询才会进入分页的逻辑并判断封装好的Page对象是否是null,null则不分页,否则分页。

IPage内部原理也是基于拦截器,但是这个拦截的是方法以及方法中的参数,这个也会判断是否是查询操作。如果是查询操作,才会进入分页的处理逻辑。
进入分页逻辑处理后,拦截器会通过反射获取该方法的参数进行判断是否存在IPage对象的实现类。如果不存在则不进行分页,存在则将该参数赋值给IPage对象。
然后进行拼接sql的处理完成分页操作。
但是使用IPage需要注入一个bean拦截器交给spring进行管理。如下。否则不会进行拦截。

  @Beanpublic PaginationInterceptor paginationInterceptor() {return new PaginationInterceptor();}pom:  springboot使用的是2.1.0<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>${mybatisplus.version}</version><!-- 3.2.0 --><exclusions><exclusion><groupId>com.baomidou</groupId><artifactId>mybatis-plus-generator</artifactId></exclusion></exclusions></dependency>

IPage的好处:
适用于多方言的数据库类型;例如 MySQL、Oracle、SqlServer等。

注意:如果两个一起用对同一个sql进行分页,内部会先执行IPage的拦截器并进行分页 然后会进入的PageHelper的分页处理。
优先使用的是IPage并且PageHelper会出现问题(不论谁前谁后)。返回Page是没问题的,但是如果返回集合的结果集使用PageInfo进行分页就会出现问题。PageHelper只会有指定条数的数据。
所以只能使用一个,如果两个一起使用,则使用IPage返回Page接收。不可以使用PageInfo进行分页数据。(当然这个的前提也是对同一个sql进行分页操作并返回的集合结果集,正常来说也不会这么干,就随便提一嘴)

Ipage分页和PageHelper分页相关推荐

  1. 分页利器——pageHelper分页插件

    pageHelper插件在分页上有哪些优势? 分页插件给我们封装了很多参数,不用我们再去硬性编码获取各种参数. pageHelper封装参数如下,这个参数封装在com.github.pagehelpe ...

  2. MyBatis-Plus分页插件——PageHelper和IPage原理介绍

    两个都用于分页,常用的应该是PageHelper了,理解了一下源码后发现IPage比PageHelper好用.     使用方法是  PageHelper.startPage()然后后边写sql就可以 ...

  3. SpringBoot项目中,如何更规范的使用PageHelper分页?

    点击上方 好好学java ,选择 星标 公众号 重磅资讯.干货,第一时间送达 今日推荐:硬刚一周,3W字总结,一年的经验告诉你如何准备校招! 个人原创100W+访问量博客:点击前往,查看更多 作者:臣 ...

  4. pagehelper的使用_SpringBoot项目中,如何更规范的使用PageHelper分页?

    SpringBoot项目中,如何更规范的使用PageHelper分页,拉勾IT课小编为大家分解 一. 开发准备 1. 开发工具 • IntelliJ IDEA 2020.2.3 2. 开发环境 • R ...

  5. MyBatis 分页插件 PageHelper:是如何拦截SQL进行分页

    目录 Springboot项目集成 分页插件参数介绍 如何选择配置这些参数 场景一 场景二 场景三 场景四 场景五 PageHelper的使用 PageHelper实现原理1: interceptor ...

  6. 解决使用mybatis分页插件PageHelper的一个报错问题

    解决使用mybatis分页插件PageHelper的一个报错问题 参考文章: (1)解决使用mybatis分页插件PageHelper的一个报错问题 (2)https://www.cnblogs.co ...

  7. (血和泪的成果)使用PageHelper分页插件进行后台分页

    前些天按照视频里讲的做一个分页功能,可是不知道什么原因在页面就是不显示数据.昨天碰巧发现了一个分页插件,只需一些设置就可以完成分页,非常方便.不过由于是新手,其中遇到了很多很多麻烦,不过幸好得到大神的 ...

  8. MyBatis分页插件PageHelper使用练习

    转载自:http://git.oschina.net/free/Mybatis_PageHelper/blob/master/wikis/HowToUse.markdown 1.环境准备: 分页插件p ...

  9. vue分页+spring boot +分页插件pagehelper

    vue分页+spring boot +分页插件pagehelper https://blog.csdn.net/baidu_38603246/article/details/98854013

最新文章

  1. Android 开发包括哪些方面?如何提升?
  2. [转] Ubuntu/Linux Mint/Debian 安装 Java 8
  3. php检测类是否存在,php判断类是否存在函数class_exists用法分析
  4. 让.NET程序会说话
  5. 20159302 《网络攻击与防范》第四周学习总结
  6. SQL Server遗失管理权限账号密码怎么办?
  7. AI算法岗为什么都要求C++?
  8. Atitit.attilax软件研发与项目管理之道
  9. 微信小程序——评论点赞功能
  10. python什么表示空类型_在 Python 中 __________ 表示空类型。 (2.0分)_学小易找答案
  11. java throw 和catch_Java catch与throw同时使用的操作
  12. ik分词 动态增加词库 mysql_Elasticsearch7.8.0集成IK分词器改源码实现MySql5.7.2实现动态词库实时更新...
  13. r语言做断轴_手把手教你用R语言做回归后的残差分析
  14. MFC中CImage类显示的半透明PNG存在的问题以及处理方法
  15. BUPT-CSAPP 2019 Fall 3.58 3.60 3.63
  16. Win7下BootCamp蓝屏问题解决方案二
  17. 盗版系统惹的祸?Windows 7安装KB3146706会出现蓝屏
  18. GoodNotes 模板分享
  19. 加密货币未来的5大趋势
  20. 关系网络 Relation Network

热门文章

  1. ios 模拟器沙盒_举例详解iOS开发过程中的沙盒机制与文件
  2. 六一 | 如何用Python制作童年游戏
  3. 现在个人paypal怎么提现?
  4. Mac思维导图软件推荐——MindNode 7 for Mac
  5. PHP退休了吗,有一种退休叫职务退休
  6. IntelliJ IDEA(3)——快捷键与模板
  7. 2.2Ad Hoc 网络的MAC协议
  8. mysql replicate函数_【MySQL】主从复制参数“--replicate-do-*”请谨慎使用
  9. zookeeper本地下载与安装
  10. [BZOJ2687]交与并