MyBatis-Plus 分页 Page 对象
·
Page 对象介绍
MyBatis-Plus 提供的分页核心类:
com.baomidou.mybatisplus.extension.plugins.pagination.Page<T>
这个类是 MP 规定好固定结构的,里面几个字段是分页必备、框架自动赋值,开发者只需要直接使用即可。
Page 五大核心字段含义
| 字段 | 含义 | 通俗解释 |
|---|---|---|
| records | 当前页数据列表 | 当前这一页查到的业务数据集合 |
| total | 总记录数 | 符合查询条件的所有数据总条数 |
| size | 每页条数 | 每一页展示多少条数据 |
| current | 当前页码 | 当前正在查询的是第几页 |
| pages | 总页数 | 所有数据一共能分成多少页,框架自动计算 |
一句话概括:current、size 是你传给框架的;records、total、pages 是框架自动帮你查好、算好返回的。
业务场景举例
以网点订单每日统计分页为例:需求:分页查询网点每日订单统计,查询第 1 页,每页 10 条。
假设数据库一共有 105 条 网点每日统计数据。
1、分页结构示例
{
"current": 1,
"size": 10,
"records": [
{"orgId":101,"todayDeltaCount":8},
{"orgId":102,"todayDeltaCount":12}
// ... 共10条
],
"total": 105,
"pages": 11
}
2、字段对应解释
- current = 1:查询的是第 1 页
- size = 10:每页展示 10 条
- records:第 1 页真正的 10 条统计数据
- total = 105:全部符合条件的数据一共 105 条
- pages = 11:总页数 11 页(105 ÷ 10 向上取整)
3、总页数计算规则
MyBatis-Plus 自动帮我们计算,不用自己写代码:
总页数 pages = 总记录数 total ÷ 每页条数 size,向上取整
五、代码实战用法
1、创建分页对象
// 参数1:当前页码 参数2:每页条数
Page<OrderDailyStatDTO> page = new Page<>(1L, 10L);
2、Mapper 分页查询
IPage<OrderDailyStatDTO> selectOrderStatPage(Page<OrderDailyStatDTO> page);
只需要把 Page 当参数传进去,MyBatis-Plus 自动分页、自动查总数、自动封装所有字段。
3、获取分页所有属性
IPage<OrderDailyStatDTO> resultPage = orderDailyStatMapper.selectOrderStatPage(page);
// 当前页码
long current = resultPage.getCurrent();
// 每页条数
long size = resultPage.getSize();
// 总记录数
long total = resultPage.getTotal();
// 总页数
long pages = resultPage.getPages();
// 当前页数据列表
List<OrderDailyStatDTO> records = resultPage.getRecords();
开发优势
- 不用手动写 SQL 统计总条数,MP 自动帮你执行 count 查询;
- 不用自己计算总页数,框架自动向上取整;
- 前后端交互字段统一,前端直接拿 current /size/total /pages 做分页组件;
- 所有项目通用,规范统一,可读性强。
总结
- MyBatis-Plus 的
Page<T>是官方标准分页对象,字段固定; - 五大核心:
current当前页、size每页条数、records本页数据、total总记录数、pages总页数; - 只需传入页码和页条数,框架自动查询、自动计算、自动封装;
- 所有列表分页、统计分页都可以直接复用这套结构。
更多推荐




所有评论(0)