提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
目录
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.7</version>
</dependency>
可以在xml里添加配置
pagehelper.helper-dialect = mysql
pagehelper.reasonable = true
pagehelper.support-methods-arguments = true
pagehelper.params = count=countSql
也可以用注解的方式
@Bean
public static PageHelper pageHelper() {
PageHelper pageHelper = new PageHelper();
Properties properties = new Properties();
properties.setProperty("reasonable", "false");
properties.setProperty("supportMethodsArguments", "true");
properties.setProperty("params", "count=countSql");
properties.setProperty("helperDialect", "mysql");
pageHelper.setProperties(properties);
new SqlSessionFactoryBean().setPlugins(new Interceptor[]{pageHelper});
return pageHelper;
}
public PageInfo<RepayReconciliationEntity> getRepaymentSummaryList(GetRepaymentSummaryListReqDTO getRepaymentSummaryListReqDTO) {
// 查询条件-当前页数
Integer pageNum = getRepaymentSummaryListReqDTO.getPageNum();
// 查询条件-每页大小
Integer pageSize = getRepaymentSummaryListReqDTO.getPageSize();
// 初始化分页插件
PageHelper.startPage(pageNum, pageSize);
List<RepayReconciliationEntity> resultList = repayReconciliationMapper.getByConditionByPage();
return new PageInfo<>(resultList);
}
在实操的时候,我们往往会在查询之前进行一些参数的设置或者转换
千万要保证初始化分页插件和查询是紧挨着的,否则分页不生效。
下面举个反例
public PageInfo<RepayReconciliationEntity> getRepaymentSummaryList(GetRepaymentSummaryListReqDTO getRepaymentSummaryListReqDTO) {
// 查询条件-当前页数
Integer pageNum = getRepaymentSummaryListReqDTO.getPageNum();
// 查询条件-每页大小
Integer pageSize = getRepaymentSummaryListReqDTO.getPageSize();
// 初始化分页插件
PageHelper.startPage(pageNum, pageSize);
String json = "abc";
List<RepayReconciliationEntity> resultList = repayReconciliationMapper.getByConditionByPage();
return new PageInfo<>(resultList);
}
我们可以看到,仅仅是在初始化分页插件之后,随便写了一行代码,最终就会导致分页没生效。?
没啥难度,简单到有手就行!