mybatis-plus+springboot3项目实现分页

官网教程 https://baomidou.com/plugins/pagination/

1、首先确认依赖安装OK

javascript 复制代码
  implementation 'com.baomidou:mybatis-plus-spring-boot3-starter:3.5.10'
  implementation 'com.baomidou:mybatis-plus-generator:3.5.10'
  implementation 'com.baomidou:mybatis-plus-jsqlparser:3.5.10'
  implementation 'com.baomidou:mybatis-plus-extension:3.5.10'

2、增加配置

javascript 复制代码
@Configuration
@MapperScan("scan.your.mapper.package")
public class MybatisPlusConfig {

    /**
     * 添加分页插件
     */
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL)); // 如果配置多个插件, 切记分页最后添加
        // 如果有多数据源可以不配具体类型, 否则都建议配上具体的 DbType
        return interceptor;
    }
}

3、MyBatis-Plus 分页实现原理

拦截器机制:

  • MyBatis-Plus 使用拦截器来拦截 SQL 语句的执行。
  • 通过 MybatisPlusInterceptor 和 PaginationInnerInterceptor,在执行 SQL 之前对其进行修改。

SQL 重写:

  • 在原始 SQL 语句的基础上,添加分页相关的 SQL 片段。
  • 例如,对于 MySQL 数据库,分页 SQL 通常会在原始查询后添加 LIMIT 和 OFFSET。
    分页参数处理:

分页参数(如当前页码和每页大小)通过 Page 对象传递。

Page 对象包含分页信息,并在拦截器中用于计算 LIMIT 和 OFFSET。

执行流程:

  • 请求: 接收到分页请求,包含页码和每页大小。
  • 分页参数封装: 使用 Page 对象封装分页参数。
  • SQL 拦截: 拦截器拦截 SQL 语句。
  • COUNT 查询: 生成并执行 COUNT 查询以获取总记录数。
  • 分页查询: 生成并执行分页查询以获取当前页数据。
  • 结果组装: 将总记录数和当前页数据组装成 IPage 对象返回。

返回结果:

返回的 IPage 对象包含分页数据、总记录数、当前页码、每页大小等信息。

相关推荐
她的男孩21 小时前
权限通了、列表有数,一点分页就炸Forge Admin 用 COUNT(1) 扛住复杂待办
java·spring boot·mybatis
paopaokaka_luck1 天前
基于springboot+vue的智慧家政管理系统(AI问答、 WebSocket实时沟通、ECharts运营分析、订单规则与服务追踪)
java·javascript·spring boot·数据分析·echarts·mybatis
大牧师2 天前
Mybatis 框架教程
java·数据库·mybatis·数据持久化·orm
代码什么用2 天前
MyBatis使用PageHelper && MyBatis的注解式开发
mybatis
VX_bysjlw9852 天前
数码设备销售网站设计与实现39138-计算机毕设原创(免费领源码+带部署教程)
java·vue.js·spring boot·mysql·tomcat·mybatis·idea
天空鸟_时光不老3 天前
13-亮点提炼:把技术说辞翻译成业务价值
java·spring boot·spring·spring cloud·mybatis
禾小西4 天前
Redis AOF 日志:宕机了,如何避免数据丢失?
java·redis·mybatis
天空鸟_时光不老4 天前
09-RAG问答系统落地:从默认分割器的坑到Milvus召回调优
java·人工智能·spring boot·spring·spring cloud·maven·mybatis
西凉的悲伤4 天前
MyBatis 中 association 与 collection 详解
java·mybatis
天空鸟_时光不老4 天前
10-Agent安全隐患与SQL执行层加固
java·数据库·人工智能·sql·spring·maven·mybatis