Springboot:PageHelper

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

目录

一、maven依赖

二、配置信息

三、分页实操

四、避坑指南

总结


一、maven依赖


    com.github.pagehelper
    pagehelper-spring-boot-starter
    1.2.7

二、配置信息

可以在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 getRepaymentSummaryList(GetRepaymentSummaryListReqDTO getRepaymentSummaryListReqDTO) {
    // 查询条件-当前页数
    Integer pageNum = getRepaymentSummaryListReqDTO.getPageNum();
    // 查询条件-每页大小
    Integer pageSize = getRepaymentSummaryListReqDTO.getPageSize();
    // 初始化分页插件
    PageHelper.startPage(pageNum, pageSize);
    List resultList = repayReconciliationMapper.getByConditionByPage();
    return new PageInfo<>(resultList);
}

四、避坑指南

在实操的时候,我们往往会在查询之前进行一些参数的设置或者转换

千万要保证初始化分页插件和查询是紧挨着的,否则分页不生效。

下面举个反例

public PageInfo getRepaymentSummaryList(GetRepaymentSummaryListReqDTO getRepaymentSummaryListReqDTO) {
    // 查询条件-当前页数
    Integer pageNum = getRepaymentSummaryListReqDTO.getPageNum();
    // 查询条件-每页大小
    Integer pageSize = getRepaymentSummaryListReqDTO.getPageSize();
    // 初始化分页插件
    PageHelper.startPage(pageNum, pageSize);

    String json = "abc";
    
    List resultList = repayReconciliationMapper.getByConditionByPage();
    return new PageInfo<>(resultList);
}

我们可以看到,仅仅是在初始化分页插件之后,随便写了一行代码,最终就会导致分页没生效。 


总结

没啥难度,简单到有手就行!

你可能感兴趣的:(spring,boot,后端,java)