Springboot:PageHelper

2023-12-21 15:43:01

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

目录

一、maven依赖

二、配置信息

三、分页实操

四、避坑指南

总结


一、maven依赖

<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);
}

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


总结

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

文章来源:https://blog.csdn.net/ql_gome/article/details/135130287
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。