658 字
约 2 分钟
1
分页插件
无标签

第23章 分页插件

学习分页插件的使用和自定义分页实现 学习进度:88% 代码演示按钮 💻 查看完整代码 - 在线IDE体验

🎯 学习目标

📚

理解分页原理

掌握分页查询的重要性和实现原理 🔧

掌握PageHelper

学会PageHelper插件的安装、配置和使用方法 💡

高级特性

熟悉分页参数处理和高级特性优化技巧

技术栈

PageHelper 5.3.2MyBatis 3.5.13Spring Boot 2.7.14MySQL 8.0.33

🎯 什么是PageHelper?

PageHelper是MyBatis的一个分页插件,支持任何复杂的单表、多表分页查询。它通过拦截器机制,在执行查询前自动添加分页SQL,无需修改原有的Mapper文件,使用简单方便。

⭐ 核心特性

🔧 自动分页

自动识别分页查询,添加LIMIT语句

📊 多数据库支持

支持MySQL、Oracle、PostgreSQL等多种数据库

🚀 零侵入

无需修改现有Mapper文件和SQL语句

🎨 灵活配置

支持多种配置方式和参数设置

🔧 依赖配置

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

⚙️ 配置文件

# application.yml
pagehelper:
  helper-dialect: mysql
  reasonable: true
  support-methods-arguments: true
  params: count=countSql
  page-size-zero: true

💻 基本使用

@Service
public class UserService {
    
    @Autowired
    private UserMapper userMapper;
    
    public PageInfo<User> findUsers(int pageNum, int pageSize) {
        // 开启分页
        PageHelper.startPage(pageNum, pageSize);
        
        // 执行查询
        List<User> users = userMapper.selectAll();
        
        // 封装分页信息
        return new PageInfo<>(users);
    }
}

📊 分页信息

PageInfo<User> pageInfo = userService.findUsers(1, 10);

// 分页信息
int pageNum = pageInfo.getPageNum();        // 当前页
int pageSize = pageInfo.getPageSize();      // 页面大小
long total = pageInfo.getTotal();           // 总记录数
int pages = pageInfo.getPages();            // 总页数
List<User> list = pageInfo.getList();       // 结果集
boolean hasNextPage = pageInfo.isHasNextPage(); // 是否有下一页

💡 本章小结

本章我们学习了PageHelper分页插件的使用方法。PageHelper提供了简单易用的分页功能,通过拦截器机制自动处理分页逻辑,大大简化了分页查询的实现。主要内容包括:PageHelper插件的安装和配置基本分页查询的实现方法分页信息的获取和处理分页插件的高级特性和优化技巧下一章预告:我们将学习MyBatis的性能优化技巧,包括SQL优化、缓存策略等内容。

下一章节 🎉

恭喜完成本章学习!

你已经掌握了 分页插件 的核心知识 第24章Spring Boot 集成学习 MyBatis 与 Spring Boot 的深度集成⏱️预计 35 分钟📊中等难度开始学习 → ← 第22章 📚 课程目录 第24章 → 页面底部备案信息 百度统计

分页插件
http://www.clxhxhhr.top/posts/2865/
作者
clxstart
发布于
2026-09-19
许可协议
CC BY-NC-SA 4.0
评论
0 条
还没有评论,先写一条吧。