1.依赖
<dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper-spring-boot-starter</artifactId><version>1.4.0</version></dependency><dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper</artifactId><version>5.3.1</version></dependency>
2.yml配置
pagehelper:helperDialect: mysqlreasonable: truesupportMethodsArguments: truereturnPageInfo: checkparams: count=countSql
3.service调用写法
public List<User> findUserList(Integer pageNum, Integer pageSize) {PageHelper.startPage(pageNum, pageSize);List<User> users = userMapper.selectList();log.info("users size:" + users.size());return users;}
注意:PageHelper.startPage(pageNum, pageSize);这一行代码后腰紧跟需要分页的mapper方法
4.备用
我在整合的过程中,前期一直没有分页的效果,在网上找教程基本也就是上面几步完成就可以了,但我的一直不行,后来我发现是缺少pagehelper的拦截器插件,如果前三步完成后还是没有分页的效果,可以在加上这一步:在启动类注入拦截器的bean:
@Beanpublic ConfigurationCustomizer configurationCustomizer() {return new ConfigurationCustomizer() {@Overridepublic void customize(Configuration configuration) {configuration.setMapUnderscoreToCamelCase(true); // 根据需要开启驼峰命名转换PageInterceptor pageInterceptor = new PageInterceptor();Properties properties = new Properties();properties.setProperty("helperDialect", "mysql"); // 设置数据库类型properties.setProperty("reasonable", "true"); // 分页合理化参数pageInterceptor.setProperties(properties);configuration.addInterceptor(pageInterceptor);}};}
上边的setProperties基本是与yml文件中加的配置重复的,想留着也可以,删了也行
5.一个bug说明
如果分页过程中提示你sql语法错误,提示你limit关键字前边有一个分号;,那就把sql中结尾的分号删掉试试