参考:springboot集成mybatis的分页插件pageHelper
添加分页插件依赖文件
注意:以下三个缺一不可
<!-- 分页插件pagehelper -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.0.0</version>
</dependency>
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-autoconfigure</artifactId>
<version>1.2.3</version>
</dependency>
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.3</version>
</dependency>
<!-- 分页插件pagehelper -->
配置application.properties
这一步,是可选的
#pagehelper分页插件配置
#pagehelper.helperDialect=mysql
#pagehelper.reasonable=true
#pagehelper.supportMethodsArguments=true
#pagehelper.params=count=countSql
使用
个人觉得原始的PageInfo即可满足需要。当然,可以按需封装。
package com.vue.admin.controller;
@RestController
@RequestMapping(value = "/sysUser")
public class SysUserController {
@Autowired
private SysUserServie sysUserServieImpl;
@RequestMapping(value="/select")
public PageInfo select(@RequestBody Map map)throws Exception{
Integer currentPage = (Integer)map.get("currentPage");
Integer pageSize =(Integer) map.get("pageSize");
PageHelper.startPage(currentPage,pageSize);
List<SysUser> list = sysUserServieImpl.selectByCondition(example);
PageInfo<SysUser> appsPageInfo = new PageInfo<>(list);
return appsPageInfo;//PageUtil.pageVO();
}
}
报错及解决
java.lang.ClassCastException: java.util.ArrayList cannot be cast to com.github.pagehelper.Page
原因:查询结果如果不是Page类型,强转成ArrayList当然会报错。这说明PageHelper没有生效。
解决:在我的项目中是因为少引入了pom.xml中的依赖,引入之后就解决了。网上也有说===没有打开EnableAutoConfiguration,所以需要手动@ImportAutoConfiguration(PageHelperAutoConfiguration.class),不然PageInterceptor 无法配置成功,也就无法正常进行sql拦截并进行对应分页处理。===这个估计用的是配置吧