项目启动初期,在集成mybatis的分页插件,自定义封装了一个分页的工具类,方便后期项目的扩展。部分的代码如下:
/**
* 分页查询
* 进行count计算
*
* @param pageNum 页数
* @param pageSize 每页数量
* @param supplier 查询操作
* @return
*/
public static <T> PageInfo<T> pageQueryWithCount(int pageNum, int pageSize, Supplier<List<T>> supplier) {
if (pageNum < 1) pageNum = getDefaultPageNum();
if (pageSize < 1) pageSize = getDefaultPageSize();
try {
Page<T> page = PageHelper.startPage(pageNum, pageSize, true);
supplier.get();
return new PageInfo<T>(page);
} finally {
PageHelper.clearPage();
}
}
结果懵逼了,无法分页了。怎么设置搞都没办法正常分页,把我脑子搞晕乎了哎呀。
PageInfo<SysUserDO> sysUserDOPageInfo = PageUtils.pageQueryWithCount(pageNum, pageSize, () ->
sysUserDao.get()
);
GenericPageRspBO genericPageRspBO = new GenericPageRspBO();
genericPageRspBO.setTotal(sysUserDOPageInfo.getTotal());
genericPageRspBO.setResultList(BeanCopyUtils.deepCopyBeanList(sysUserDOPageInfo.getList(), SysUserBO.class));
return genericPageRspBO;
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.1.11</version>
</dependency>
PageHelper.startPage(1,5);
List<SysUserDO> sysUserDOS = sysUserDao.get();
PageInfo<SysUserDO> sysUserDOPageInfo = new PageInfo<>(sysUserDOS);
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.4.1</version>
</dependency>
做人做到底,送佛送到西。今天踩了一个坑。对PageHelper 分页失效的问题进行一下汇总。
PageHelper未正确配置: 请确保你的PageHelper配置在Spring Boot的配置文件中已经生效。你的配置看起来正确,但需要确保配置文件的位置和名称与Spring Boot的要求一致(通常是application.yml或application.properties)。
PageHelper版本问题: 有时候,PageHelper的版本与MyBatis或Spring Boot版本不兼容可能导致问题。请确保你正在使用兼容的版本。
注意pom.xml导入的依赖:应该是spring版本的而不是其独立的版本
SQL查询是否正确: 最后,请确保你的SQL查询在数据库中是有效的,且返回了正确的结果。你可以在数据库中手动运行查询来验证它是否按预期工作。
只有紧跟着PageHelper.startPage()的sql语句才被pagehelper起作用。(注意,经过再次验证,这里不是扯淡,其原理可能是
“PageHelper.startPage(pageNum,pageSize)”在使用的时候启动了一个线程,致使了其能达到这个效果”)