当前位置: 首页 > news >正文

IPage类与Page类区别和作用讲解

在 Java 中,PageIPage 类通常与分页功能相关,尤其是在使用 MyBatis Plus 这样的 ORM(对象关系映射)框架时。以下是 PageIPage 类的常见区别和用途:

  1. Page 类

    • Page 是一个具体的分页类,通常由用户创建并传递给分页查询方法。
    • 它包含了分页所需的所有信息,如当前页码(current page)、每页的记录数(size)、排序规则(orders)等。
    • Page 类可能是一个泛型类,其类型参数表示分页内容的类型,例如 Page<ProductOrderDO>
  2. IPage 接口

    • IPage 是一个分页结果的接口,它定义了分页结果应该具备的结构和行为。
    • 它通常包含方法来获取当前页的记录列表(如 getRecords())、总记录数(如 getTotal())、每页的记录数(如 getSize())等。
    • IPage 接口的实现类负责存储分页查询的结果,并提供访问这些结果的方法。
  3. 使用场景

    • Page 类用于定义分页查询的参数,例如请求第几页的数据以及每页显示多少条记录。
    • IPage 接口用于封装分页查询的结果,它在查询执行后由框架或库填充并返回。
  4. 框架集成

    • 在 MyBatis Plus 中,Page 类和 IPage 接口被广泛使用。开发者创建 Page 对象来传递分页参数,执行查询后得到 IPage 接口的实现作为返回值。
  5. 示例

    // 创建一个 Page 对象,请求第 1 页,每页 10 条记录
    Page<ProductOrderDO> page = new Page<>(1, 10);// 执行分页查询,返回 IPage 接口的实现
    IPage<ProductOrderDO> resultPage = productOrderService.page(page);// 从 IPage 接口获取当前页的记录列表
    List<ProductOrderDO> records = resultPage.getRecords();// 获取总记录数
    long totalRecords = resultPage.getTotal();
    
  6. 扩展性

    • IPage 接口允许框架提供多种类型的分页实现,以适应不同的查询和存储需求。

总之,Page 类用于定义分页查询的参数,而 IPage 接口用于封装和提供对分页查询结果的访问。这种设计模式使得分页功能灵活且易于扩展。
IPage 接口是 MyBatis Plus 分页插件中的一个核心接口,用于封装分页查询的结果。以下是 IPage 接口的一些关键方法及其用途:

  1. getTotal():

    • 获取总记录数。
  2. getSize():

    • 获取每页的记录数。
  3. getCurrent():

    • 获取当前页码。
  4. getPages():

    • 获取总页数。
  5. getRecords():

    • 获取当前页的记录列表。
  6. isHasNext():

    • 判断是否有下一页。
  7. isHasPrevious():

    • 判断是否有上一页。
  8. getNextPage():

    • 获取下一页的页码。
  9. getPreviousPage():

    • 获取上一页的页码。
  10. getStartRow():

    • 获取当前页的起始行号。
  11. getEndRow():

    • 获取当前页的结束行号。
  12. getReason():

    • 获取执行分页查询时的执行原因。
  13. getOrderByField():

    • 获取排序字段。
  14. getOrderBy():

    • 获取排序方式(升序或降序)。
  15. getReasons():

    • 获取执行分页查询时的执行原因列表。
  16. getNavigateFirstPage():

    • 获取导航到第一页的页码。
  17. getNavigateLastPage():

    • 获取导航到最后一页的页码。
  18. getNavigatePages():

    • 获取导航页码的数量。
  19. getNavigatepageNums():

    • 获取导航页码列表。
  20. getNavigatePageNum():

    • 获取导航页码。

这些方法提供了对分页结果的全面访问,包括分页的基本信息、记录列表、分页导航等。通过这些方法,你可以获取分页查询的详细结果,并在应用程序中进行相应的处理。

请注意,IPage 接口的具体实现可能会根据 MyBatis Plus 的版本和配置有所不同。以上列出的方法是根据常见的分页需求和 MyBatis Plus 的设计模式总结的。在实际使用中,你应该参考你所使用的 MyBatis Plus 版本的官方文档。

相关文章:

  • 【vim 学习系列文章 15.2 -- vim vimgrep 使用详细介绍】
  • WebRTC音视频开发读书笔记(六)
  • Go 语言并发--高级概述
  • 11.4k star! 部署清华开源的ChatGLM3,用私有化大模型无缝替换openai
  • 探索Python的工业通信之光:pymodbus的奇妙之旅
  • STM32时钟树配置
  • linux dig域名DNS 查询与iptables域名ip访问流量限制
  • 元素设置了sticky粘性布局后,关于滚动后怎么样让这个元素自动添加阴影,我用自定义指令实现
  • 4.3 数据操作语言(DML):增删改查操作
  • 牛客网SQL进阶135 :每个6/7级用户活跃情况
  • 【c++】通过Privilege类来保护数据
  • 【layui】layer弹出图片层(开启图片旋转 放大 缩小 还原)
  • PostgreSQL常用命令,启动连接,pg_dump导入导出
  • Python模块篇(五)
  • 2408d,加@GC作为函数属性
  • JS中 map, filter, some, every, forEach, for in, for of 用法总结
  • [分享]iOS开发-关于在xcode中引用文件夹右边出现问号的解决办法
  • “大数据应用场景”之隔壁老王(连载四)
  • JavaScript服务器推送技术之 WebSocket
  • JS题目及答案整理
  • Linux下的乱码问题
  • passportjs 源码分析
  • 看完九篇字体系列的文章,你还觉得我是在说字体?
  • 如何利用MongoDB打造TOP榜小程序
  • 深度学习入门:10门免费线上课程推荐
  • 实现菜单下拉伸展折叠效果demo
  • 运行时添加log4j2的appender
  • 从如何停掉 Promise 链说起
  • ​香农与信息论三大定律
  • ###STL(标准模板库)
  • (27)4.8 习题课
  • (cos^2 X)的定积分,求积分 ∫sin^2(x) dx
  • (C语言)逆序输出字符串
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第5节(封闭类和Final方法)
  • (附源码)springboot“微印象”在线打印预约系统 毕业设计 061642
  • (附源码)ssm本科教学合格评估管理系统 毕业设计 180916
  • (论文阅读22/100)Learning a Deep Compact Image Representation for Visual Tracking
  • (顺序)容器的好伴侣 --- 容器适配器
  • ****三次握手和四次挥手
  • .\OBJ\test1.axf: Error: L6230W: Ignoring --entry command. Cannot find argumen 'Reset_Handler'
  • .bat批处理(二):%0 %1——给批处理脚本传递参数
  • .Net IOC框架入门之一 Unity
  • .NET LINQ 通常分 Syntax Query 和Syntax Method
  • .NET/C# 在代码中测量代码执行耗时的建议(比较系统性能计数器和系统时间)
  • .NET中GET与SET的用法
  • .net最好用的JSON类Newtonsoft.Json获取多级数据SelectToken
  • [ element-ui:table ] 设置table中某些行数据禁止被选中,通过selectable 定义方法解决
  • [ACM] hdu 1201 18岁生日
  • [acwing周赛复盘] 第 94 场周赛20230311
  • [AI]文心一言爆火的同时,ChatGPT带来了这么多的开源项目你了解吗
  • [C#]C# winform实现imagecaption图像生成描述图文描述生成
  • [C++数据结构](22)哈希表与unordered_set,unordered_map实现
  • [FC][常见Mapper IRQ研究]
  • [IE编程] IE8的SDK 下载
  • [jquery]this触发自身click事件,当前控件向上滑出