PageHelper-Spring-Boot 教程

PageHelper-Spring-Boot 教程

pagehelper-spring-bootpagehelper-spring-boot项目地址:https://gitcode.com/gh_mirrors/pa/pagehelper-spring-boot

1. 项目介绍

PageHelper 是一个针对 MyBatis 的分页插件,它提供了方便的分页功能,只需简单的配置就能轻松实现复杂的分页需求。PageHelper-Spring-Boot 是该插件的 Spring Boot 集成版,它帮助用户无缝地将 PageHelper 引入到 Spring Boot 应用程序中,无需繁琐的配置。

2. 项目快速启动

2.1 添加依赖

首先,在你的 pom.xml 文件中添加 PageHelper-Spring-Boot Starter 的依赖:

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

2.2 配置 application.properties

application.properties 文件中添加以下配置以启用 PageHelper:

pagehelper.helperDialect=mysql # 数据库类型
pagehelper.reasonable=true # 是否合理处理count查询
pagehelper.supportMethodsArguments=true # 支持通过Map传入分页参数
pagehelper.params=count=countSql # 自定义参数

2.3 使用示例

在 Service 或 Repository 类中,使用 PageHelper 开启分页:

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;

@Service
public class UserService {
    
    @Autowired
    private UserRepository userRepository;

    public Page<User> getUserList(int pageNum, int pageSize) {
        PageHelper.startPage(pageNum, pageSize);
        return userRepository.findAll();
    }
}

在 Controller 类中,接收请求并调用 Service 方法:

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class UserController {

    @Autowired
    private UserService userService;

    @GetMapping("/users")
    public Object getUsers(@RequestParam(defaultValue="1") Integer pageNum,
                            @RequestParam(defaultValue="10") Integer pageSize) {
        return userService.getUserList(pageNum, pageSize);
    }
}

3. 应用案例与最佳实践

3.1 异步 Count 支持

从版本 2.0.0 开始,PageHelper 支持异步计算总数。要开启此功能,可以在启动分页时调用 enableAsyncCount()

PageHelper.startPage(pageNum, pageSize).enableAsyncCount();

3.2 自定义 SQL 解析器

你可以通过 SPI 方式或构造函数参数替换默认的 SQL 解析器,例如替换 CountSqlParser:

PageHelper.startPage(pageNum, pageSize)
           .setCountSqlParser(new YourCustomCountSqlParser());

4. 典型生态项目

PageHelper-Spring-Boot 适用于任何基于 Spring Boot 并使用 MyBatis 的应用程序。它可以与其他 Spring Boot 生态组件如 Spring Data JPA、MyBatis-Spring-Boot-Starter、Swagger 等结合使用,构建强大的数据访问层。


本教程覆盖了 PageHelper-Spring-Boot 的基本使用方法,包括配置、快速启动示例以及一些高级特性。结合官方文档和示例项目,可以进一步了解如何在实际项目中充分利用这一工具。

pagehelper-spring-bootpagehelper-spring-boot项目地址:https://gitcode.com/gh_mirrors/pa/pagehelper-spring-boot

  • 5
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
PageHelper 是一个 MyBatis 分页插件,可以帮助开发者在 MyBatis 中方便地实现分页功能。而 pagehelper-spring-boot-starter 是一个 PageHelper 在 Spring Boot 中的集成,使用起来非常方便。以下是使用 pagehelper-spring-boot-starter 实现分页的步骤: 1. 引入依赖 在 pom.xml 文件中添加以下依赖: ``` <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <version>1.2.10</version> </dependency> ``` 2. 配置 PageHelper 在 application.properties 文件中添加以下配置: ``` # 分页插件配置 pagehelper.helperDialect=mysql pagehelper.reasonable=true pagehelper.supportMethodsArguments=true pagehelper.params=count=countSql ``` 其中,helperDialect 为数据库方言,reasonable 为是否开启合理化分页,supportMethodsArguments 为是否支持 Mapper 方法参数为 Page 类型,params 为分页参数映射。 3. 使用分页 在 Mapper 接口的方法中添加 Page 参数,即可实现分页查询: ``` List<User> getUsers(@Param("name") String name, Page<User> page); ``` 在 Service 层中调用该方法,并传入 Page 参数即可实现分页查询: ``` Page<User> page = PageHelper.startPage(pageNum, pageSize); List<User> users = userMapper.getUsers(name, page); ``` 其中,pageNum 和 pageSize 分别为当前页码和每页显示数量。PageHelper.startPage 方法会自动拦截下一次查询,并将查询转为分页查询。查询结果会封装在 Page 对象中,可以通过该对象获取分页信息和查询结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

庞队千Virginia

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值