mybatisplus分页查询使用PageHelper插件分页查询 没有分页
时间: 2025-01-15 21:11:53 浏览: 112
### MyBatisPlus 使用 PageHelper 插件进行分页查询时未生效的原因分析
当在 Spring Boot 环境下使用 MyBatis Plus 结合 PageHelper 进行分页查询却未能成功实现分页功能时,通常会遇到配置不当或插件冲突等问题。
#### 配置文件设置不正确
确保 `application.properties` 或者 `application.yml` 中包含了正确的数据库方言和其他必要的参数配置。例如:
```properties
pagehelper.helper-dialect=mysql
pagehelper.reasonable=true
pagehelper.support-methods-arguments=true
pagehelper.params=count=countSql
pagehelper.rowBoundsWithCount=true
pagehelper.offsetAsPageNum=true
```
这些属性有助于确保 PageHelper 能够正常工作并处理 SQL 查询中的分页逻辑[^2]。
#### 缺少必要 Bean 的注册
如果项目中缺少了某些重要的拦截器定义,则可能导致分页机制无法启动。对于 MyBatis Plus 来说,应当添加如下代码来创建相应的 Bean 实例:
```java
@Bean
public PaginationInterceptor paginationInterceptor() {
return new PaginationInterceptor();
}
@Bean
public PerformanceInterceptor performanceInterceptor(){
return new PerformanceInterceptor();
}
```
上述方法通过向容器注入 `PaginationInterceptor` 和 `PerformanceInterceptor` 可以增强框架的功能支持,从而更好地兼容 PageHelper 的分页特性[^3]。
#### 对 List 类型数据的操作影响分页效果
有时开发者会在获取到结果集之后再对其进行额外封装或其他形式的数据转换操作,这可能会破坏原有的分页结构。比如下面这段代码就可能造成问题:
```java
PageInfo pageViewInfo = new PageInfo<>(hdQueryVos);
```
这里直接传入了一个完整的列表给 `PageInfo` 构造函数,在这种情况下即使之前已经设置了分页条件也会被忽略掉[^4]。
为了修复这个问题,建议调整业务逻辑顺序,先完成所有的过滤、排序等预处理后再执行实际的分页请求;或者考虑采用其他方式返回带有总记录数的信息而不仅仅是简单的集合对象。
---
阅读全文
相关推荐



















