mybatisplus最新版本配置分页器
时间: 2025-05-16 15:08:43 浏览: 11
### 正确配置 MyBatisPlus 的分页器
在 MyBatisPlus 中,分页功能依赖于 `PaginationInnerInterceptor` 插件的正确配置。以下是针对最新版本中的分页器配置方法:
#### 1. 配置分页插件
为了支持分页查询,需创建一个自定义配置类并注册分页拦截器。此拦截器会自动处理 SQL 查询中的分页逻辑。
```java
@Configuration
public class MybatisPlusConfig {
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
// 添加分页拦截器,并指定数据库类型为 MySQL
PaginationInnerInterceptor paginationInnerInterceptor = new PaginationInnerInterceptor();
paginationInnerInterceptor.setDbType(DbType.MYSQL); // 设置数据库类型为 MySQL
// 如果需要取消单页最大记录数限制,则可以设置 maxLimit 参数为 -1
paginationInnerInterceptor.setMaxLimit(-1L);
interceptor.addInnerInterceptor(paginationInnerInterceptor);
return interceptor;
}
}
```
上述代码中设置了分页插件的具体参数[^2],其中 `setDbType` 方法用于指定目标数据库的方言(如 MySQL),而 `setMaxLimit` 则控制单页的最大记录数限制。
---
#### 2. 使用分页查询
完成分页插件的配置后,在实际业务场景中可以通过调用 `selectPage` 或其他相关方法实现分页查询。
以下是一个简单的测试案例演示如何执行分页查询:
```java
@Test
void testGetByPage() {
IPage<User> page = new Page<>(1, 2); // 创建分页对象,1 表示当前页码,2 表示每页大小
// 调用 DAO 层的方法进行分页查询
userMapper.selectPage(page, null);
// 输出分页结果的相关信息
System.out.println("当前页码值:" + page.getCurrent());
System.out.println("每页显示:" + page.getSize());
System.out.println("一共多少页:" + page.getPages());
System.out.println("一共多少条数据:" + page.getTotal());
System.out.println("数据:" + page.getRecords());
}
```
在此代码片段中,`IPage` 是 MyBatisPlus 提供的一个接口,表示分页的结果集。通过传递该对象到 Mapper 接口的分页方法中即可获取对应的数据[^3]。
---
#### 注意事项
- **数据库方言匹配**:确保 `PaginationInnerInterceptor` 的 `setDbType` 方法所设值与实际使用的数据库一致,否则可能导致生成的 SQL 语法错误。
- **单页最大记录数限制**:默认情况下,MyBatisPlus 对单页返回的记录数进行了限制(通常为 500 条)。如果希望解除这一限制,可将 `setMaxLimit` 设定为 `-1`。
- **版本兼容性**:部分旧版 MyBatisPlus 可能不支持某些高级特性或存在差异化的 API 实现方式,请务必查阅官方文档确认适用性。
---
阅读全文
相关推荐


















