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

目录

一、pom.xml文件配置

二、使用PaginationInterceptor

三、使用MybatisPlusInterceptor

四、两种拦截器的对比

1. PaginationInterceptor:

3. MybatisPlusInterceptor:

五、总结及建议


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

一、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框架中实现分页查询的功能。它提供了两种方式配置分页插件。一种是使用旧版的配置方式,通过在MybatisPlusConfig类中配置PaginationInterceptor来实现分页功能。另一种是使用最新版的配置方式,通过在MybatisPlusConfig类中配置MybatisPlusInterceptor来实现分页功能。\[1\]\[2\] 使用分页插件方式是通过创建一个Page对象,并传入当前页码和每页记录数来进行分页查询。然后将Page对象和查询条件传入selectPage方法中,即可实现分页查询。查询结果会返回一个IPage对象,其中包含了总页数、总记录数以及当前页的内容。可以通过getPages方法获取总页数,通过getTotal方法获取总记录数,通过getRecords方法获取当前页的内容。\[3\] 以上是关于MyBatis-Plus分页插件的简要介绍和使用方式。如果还有其他问题,请随时提问。 #### 引用[.reference_title] - *1* [MyBatis-Plus分页插件](https://blog.csdn.net/s17856147699/article/details/126354189)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [Mybatis-Plus---分页插件](https://blog.csdn.net/qq_41813208/article/details/108065005)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值