返回

MybatisPlus 助力分页难题轻松搞定,体验不一样的分页操作

后端

MyBatisPlus 分页功能指南:领略简洁高效的分页之道

1. 导入依赖

为了使用 MyBatisPlus 的分页功能,需要将依赖添加到你的项目中:

<dependency>
  <groupId>com.baomidou</groupId>
  <artifactId>mybatis-plus-boot-starter</artifactId>
  <version>3.5.2</version>
</dependency>

2. 配置分页插件

接下来,我们需要在 MyBatisPlus 配置文件中开启分页插件:

# 配置分页插件
mybatis-plus:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
    default-page-size: 10
    max-page-size: 100
    auto-scrolling-pages: true
    page-size-zero: true
    合理利用内存,专门留了一部分空间用于存放 pageSize  pageNum,只有这 2 个值变了才会刷新内存
    fast-segment-page: true

3. 实体类继承 Page 类

现在,我们可以让实体类继承 Page 类,赋予它们分页能力:

@Entity
@Table(name = "user")
public class User extends Page {

  private Long id;

  private String name;

  private Integer age;

  // 省略 getter 和 setter 方法
}

4. 使用 PageHelper 分页

PageHelper 是 MyBatisPlus 提供的分页助手,可以轻松实现代码中的分页:

Page<User> page = new Page<>(1, 10);
List<User> users = userMapper.selectPage(page, null);

5. 前端展示分页结果

MyBatisPlus 提供了多种分页工具,可以在前端展示分页结果,你可以选择最适合你的那个。

6. 实体类扩展 Page 类的好处

实体类继承 Page 类的好处显而易见:

  • 简化分页操作: 无需编写复杂的分页代码,只需将实体类继承 Page 类即可。
  • 自动生成 SQL: MyBatisPlus 将自动生成分页查询的 SQL,省去你的繁琐工作。
  • 统一分页结果: 所有继承 Page 类的实体类都拥有统一的分页结果,方便数据处理和展示。

7. PageHelper 灵活分页

PageHelper 作为分页助手,具有以下优点:

  • 动态分页: 可以在代码运行时动态设置分页参数,满足灵活的分页需求。
  • 拦截器实现: PageHelper 通过拦截器实现,不依赖于特定的 ORM 框架,具有较强的通用性。
  • 支持复杂查询: PageHelper 支持复杂的查询,如关联查询、子查询等,满足多种分页场景的需求。

常见问题解答

  1. 为什么要使用 MyBatisPlus 分页?
    MyBatisPlus 的分页功能简洁高效,自动生成分页 SQL,省去繁琐的分页代码编写。

  2. 如何开启 MyBatisPlus 分页插件?
    在 MyBatisPlus 配置文件中加入 mybatis-plus.configuration 节点,配置分页相关参数即可开启分页插件。

  3. 实体类继承 Page 类有什么好处?
    实体类继承 Page 类可以简化分页操作,自动生成分页 SQL,并统一分页结果。

  4. PageHelper 与 MyBatisPlus 分页插件的区别?
    PageHelper 是一个通用的分页助手,不依赖于特定的 ORM 框架;MyBatisPlus 分页插件是 MyBatisPlus 提供的分页功能,与 MyBatisPlus 框架深度集成。

  5. 如何使用 PageHelper 进行分页?
    通过 new Page(页码, 每页记录数) 创建一个 Page 对象,作为参数传递给 selectPage 方法即可进行分页查询。