springboot整合pagehelper(分页)

本文介绍了如何在SpringBoot项目中整合PageHelper进行分页操作,包括添加POM依赖,配置application.yml,创建切面类以及相关工具类,最后通过测试验证了分页功能的实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

springboot整合pagehelper

1.第一步老规矩先导入pom依赖包

<dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper-spring-boot-starter</artifactId>
            <version>1.2.3</version>
 </dependency>

2.配置application.yml文件

#pagehelper分页插件配置
pagehelper:
  helperDialect: mysql
  reasonable: true
  supportMethodsArguments: true
  params: count=countSql

#显示日志
logging:
  level:
    com.javaxl.springboot02.mapper: debug

在这里插入图片描述
3.建一个pagerAspect切面类
在这里插入图片描述

package com.zhoujun.springboot02.aspect;

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.zhoujun.springboot02.utils.PageBean;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.springframework.stereotype.Component;

import java.util.List;

@Component
@Aspect
public class PagerAspect {

    @Around("execution(* *..*Service.*Pager(..))")
    public Object invoke(ProceedingJoinPoint args) throws Throwable{
        Object[] params = args.getArgs();
        PageBean pageBean = null;
        for (Object param : params) {
            if(param instanceof PageBean){
                pageBean = (PageBean) param;
                break;
            }
        }

        if (pageBean !=null && pageBean.isPagination())
        PageHelper.startPage(pageBean.getPage(),pageBean.getRows());

        Object proceed = args.proceed(params);

        if (pageBean !=null && pageBean.isPagination()){
            PageInfo pageInfo = new PageInfo((List) proceed);
            pageBean.setTotal(pageInfo.getTotal()+"");
        }
        return proceed;
    }
}

两个工具类
在这里插入图片描述
4.测试
BookMapper类
在这里插入图片描述
BookMapper.xml类
在这里插入图片描述
BookSercice类
在这里插入图片描述
BookServiceImpl类
在这里插入图片描述
测试
在这里插入图片描述
结果
在这里插入图片描述

### Spring Boot 集成 PageHelper 实现分页查询 #### 添加 Maven 依赖 为了在 Spring Boot 中使用 PageHelper 插件,需要先引入相应的 Maven 依赖: ```xml <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <version>1.4.2</version> </dependency> ``` 此版本号可能随时间更新,建议查阅最新文档确认最合适的版本[^1]。 #### 应用程序属性配置 接着,在 `application.properties` 或者 `application.yml` 文件中添加必要的配置项来初始化 PageHelper 的行为: 对于 `.properties` 文件: ```properties pagehelper.helperDialect=mysql pagehelper.reasonable=true pagehelper.supportMethodsArguments=true ``` 而对于 `.yml` 文件,则如下所示: ```yaml pagehelper: helperDialect: mysql reasonable: true supportMethodsArguments: true ``` 这些设置指定了数据库方言为 MySQL 并启用了合理的页面编号规整以及支持方法参数解析的功能[^3]。 #### 使用 PageHelper 进行分页操作 当完成了上述准备工作之后,就可以利用 PageHelper 提供的 API 来执行带有限制条件的数据检索了。下面是一个简单的例子说明如何在一个服务层的方法里调用它来进行分页查询: ```java import com.github.pagehelper.PageHelper; import org.springframework.stereotype.Service; @Service public class UserService { private final UserMapper userMapper; // 假设有一个UserMapper接口用于访问数据 public List<User> getUsersByPage(int pageNum, int pageSize){ // 开始分页逻辑 PageHelper.startPage(pageNum, pageSize); // 执行查询语句会自动应用上面定义好的分页规则 return userMapper.selectAllUsers(); } } ``` 在这个案例中,`pageNum` 表示当前请求的是第几页的结果集;而 `pageSize` 则决定了每一页应该返回多少条记录。通过调用 `startPage()` 方法可以指定这两个参数从而控制最终得到的数据片段大小和位置[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值