MyBatis-Plus 分页插件配置的两种方式实现

 更新时间:2025年03月17日 09:41:01   作者:晟盾科技  
本文主要介绍了MyBatis-Plus 分页插件配置的两种方式实现,包括使用PaginationInterceptor和MybatisPlusInterceptor两种方式,具有一定的参考价值,感兴趣的可以了解一下

在使用 MyBatis-Plus 进行数据库操作时,分页查询是一个非常常见的需求。MyBatis-Plus 提供了方便的分页插件来简化这一过程。本文将详细介绍如何正确配置 MyBatis-Plus 的分页插件(包括 MybatisPlusInterceptor 和 PaginationInterceptor)。

一、pom.xml文件配置

为了使用 MyBatis-Plus 的分页插件,你需要确保在你的 Maven 项目的 pom.xml 文件中正确添加了必要的依赖:(一般情况下,只添加mybatis-plus的起步依赖mybatis-plus-boot-starter就可以)

注意:将${mybatis-plus.version}替换为你的项目的mybatis-plus的版本号,或者在pom.xml的<properties>的标签中统一管理版本信息

<!-- MyBatis-Plus Boot Starter -->
    <dependency>
        <groupId>com.baomidou</groupId>
        <artifactId>mybatis-plus-boot-starter</artifactId>
        <version>${mybatis-plus.version}</version>
    </dependency>
<!-- MyBatis-Plus Extension for PaginationInterceptor or MybatisPlusInterceptor -->                                                                            
    <dependency>
        <groupId>com.baomidou</groupId>
        <artifactId>mybatis-plus-extension</artifactId>
        <version>${mybatis-plus.version}</version>
    </dependency>

二、使用PaginationInterceptor

  • 适用于 MyBatis-Plus 3.4.0 之前的版本

如果你正在使用的是 MyBatis-Plus 3.4.0 之前的版本,那么你需要使用 PaginationInterceptor,它是专门用于处理分页逻辑的拦截器,在早期版本中,作为一个单独的插件提供分页功能,在Springboot框架下的应该采用如下方式进行配置:

import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * mybatis-plus配置
 */@ConfigurationpublicclassMybatisPlusConfig {

    /**
     * 添加分页插件
     */@Beanpublic PaginationInterceptor paginationInterceptor() {
        returnnewPaginationInterceptor();
    }

}

三、使用MybatisPlusInterceptor

  • 适用于 MyBatis-Plus 3.4.0 之后的版本

从 MyBatis-Plus 3.4.0 版本开始,官方推荐使用 MybatisPlusInterceptor 来替代旧版本中的 PaginationInterceptorMybatisPlusInterceptor作为一个继集成了多种功能功能的拦截器,支持多种插件,如分页插件、性能分析插件等,通过调用addInnerInterceptor()方法来使该拦截器具备各种功能。以下是官方文档中在SpringBoot框架下进行分页插件配置的方式

import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * mybatis-plus配置
 */@ConfigurationpublicclassMybatisPlusConfig {

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

四、两种拦截器的对比

1. PaginationInterceptor:

  • 主要关注于分页功能,适用于只需要简单的分页逻辑的应用场景

2. MybatisPlusInterceptor:

  • 分页插件:实现分页逻辑
  • 性能分析插件:帮助监控 SQL 执行时间。
  • SQL 注入防护插件:提高应用安全性。
  • 多租户插件:支持多租户架构下的数据隔离。
  • 乐观锁插件:简化并发控制。

五、总结及建议

如果你正在开发或维护一个基于 MyBatis-Plus 3.4.0 之前的项目,并且你的需求仅仅是分页功能,那么 PaginationInterceptor 就足够了。

对于 MyBatis-Plus 3.4.0 及之后的版本,官方推荐使用 MybatisPlusInterceptor,因为它提供了更高的灵活性和更多的内置功能,可以根据实际需要轻松扩展应用的功能。

到此这篇关于MyBatis-Plus 分页插件配置的两种方式实现的文章就介绍到这了,更多相关MyBatis-Plus 分页内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java Swing中的文本区(JTextArea)实现换行保存到文件的几个方法

    Java Swing中的文本区(JTextArea)实现换行保存到文件的几个方法

    这篇文章主要介绍了Java Swing中的文本区(JTextArea)实现换行保存到文件的几个方法,本文给出了4种方法,需要的朋友可以参考下
    2014-10-10
  • Java和MySQL数据库中关于小数的保存问题详析

    Java和MySQL数据库中关于小数的保存问题详析

    在Java和MySQL中小数的精度可能会受到限制,如float类型的小数只能精确到6-7位,double类型也只能精确到15-16位,这篇文章主要给大家介绍了关于Java和MySQL数据库中关于小数的保存问题,需要的朋友可以参考下
    2024-01-01
  • Spring配置类源码分析详解

    Spring配置类源码分析详解

    这篇文章主要介绍了Spring配置类解析源码解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-09-09
  • Java中Thread类基本用法详解

    Java中Thread类基本用法详解

    Java中的Thread类是用于创建和管理线程的类,Thread类提供了许多方法来管理线程,包括启动线程、中断线程、暂停线程等,下面这篇文章主要给大家介绍了关于Java中Thread类基本用法的相关资料,需要的朋友可以参考下
    2023-06-06
  • 使用Spring Boot Mybatis 搞反向工程的步骤

    使用Spring Boot Mybatis 搞反向工程的步骤

    这篇文章主要介绍了使用Spring Boot Mybatis 搞反向工程的步骤,帮助大家更好的理解和使用spring boot框架,感兴趣的朋友可以了解下
    2021-01-01
  • Java实现Word转PDF的全过程

    Java实现Word转PDF的全过程

    在IT领域,文档格式转换是常见的任务之一,特别是在管理大量文本数据时,本文将详细探讨如何利用Java技术将Word文档(.docx)转换成PDF格式,需要的朋友可以参考下
    2025-04-04
  • Springboot 中使用Sentinel的详细步骤

    Springboot 中使用Sentinel的详细步骤

    文章介绍了如何在SpringBoot中使用Sentinel进行限流和熔断降级,首先添加依赖,配置Sentinel控制台地址,定义受保护的资源,配置流控规则,启动Sentinel控制台和SpringBoot应用,最后测试和监控,感兴趣的朋友一起看看吧
    2025-02-02
  • 解决SpringBoot中的Scheduled单线程执行问题

    解决SpringBoot中的Scheduled单线程执行问题

    在一次SpringBoot中使用Scheduled定时任务时,发现某一个任务出现执行占用大量资源,会导致其他任务也执行失败,这篇文章主要介绍了SpringBoot中的Scheduled单线程执行问题及解决方法,需要的朋友可以参考下
    2022-06-06
  • springboot中bean的加载顺序问题

    springboot中bean的加载顺序问题

    这篇文章主要介绍了springboot中bean的加载顺序问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-05-05
  • java读取csv文件和写csv示例分享

    java读取csv文件和写csv示例分享

    这篇文章主要介绍了JAVA对CSV格式文本数据处理后再保存成新CSV格式文本的模板,可以学习到java读取csv文件和写csv的方法,需要的朋友可以参考下
    2014-03-03

最新评论