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: mysql
reasonable: true
supportMethodsArguments: true
returnPageInfo: check
params: 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:
@Bean
public ConfigurationCustomizer configurationCustomizer() {
return new ConfigurationCustomizer() {
@Override
public 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中结尾的分号删掉试试