最新-mybatis-plus 3.5分页插件配置

本文介绍了在非SpringBoot的Spring项目中,将Mybatis-Plus从3.2升级到3.5后分页功能失效的问题,重点在于配置PaginationInnerInterceptor和指定DbType。作者提供了Spring配置示例以解决此问题。

mybatis-plus 3.5分页插件配置

前提

1.项目不是springboot, 是以前的常规spring项目

2.mp 从3.2升级到3.5,升级后发现原本的分页竟然不起作用了,每次查询都是查出所有

前后配置对比

jar包对比
在这里插入图片描述

jsqlparser我这里单独引了包,因为版本太低不能使用吗,这个依赖直接删除了,因为mp中本身自己就有这个jar包

以前的配置
在这里插入图片描述

现在的配置
在这里插入图片描述
在这里插入图片描述

官网介绍

官网地址

https://baomidou.com/pages/2976a3/#spring

<bean id="sqlSessionFactory" class="com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean">
    <!-- 其他属性 略 -->
    <property name="configuration" ref="configuration"/>
    <property name="plugins">
        <array>
            <ref bean="mybatisPlusInterceptor"/>
        </array>
    </property>
</bean>

<bean id="mybatisPlusInterceptor" class="com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor">
    <property name="interceptors">
        <list>
            <ref bean="paginationInnerInterceptor"/>
        </list>
    </property>
</bean>

<bean id="paginationInnerInterceptor" class="com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor">
    <!-- 对于单一数据库类型来说,都建议配置该值,避免每次分页都去抓取数据库类型 -->
    <constructor-arg name="dbType" value="H2"/>
</bean>

可以看到解决的方案就是增加了PaginationInnerInterceptor,然后增加dbtype

springboot 配置

@Configuration
@MapperScan("scan.your.mapper.package")
public class MybatisPlusConfig {

    /**
     * 添加分页插件
     */
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.H2));
        return interceptor;
    }
}

最后

以上就是mp升级3.5后分页不起作用的介绍

升级的时候因为项目的原因会遇到很多其他问题,具体问题具体分析,有需要帮助的小伙伴可以留言

配置 MyBatis-Plus 3.5 时,需要结合 `application.yml` 文件进行设置,以确保框架能够正确加载 Mapper 文件、全局配置以及数据库连接信息。以下是一个完整的配置指南,涵盖了常见的配置项和注意事项。 ### 配置 MyBatis-Plus 的 Mapper 文件位置和全局设置 在 `application.yml` 文件中,可以通过 `mybatis-plus` 属性块来配置 Mapper 文件的位置和全局配置。例如: ```yaml mybatis-plus: mapper-locations: classpath*:/mapper/*.xml global-config: db-config: id-type: auto # 主键生成策略为自增 ``` 此配置指定了 Mapper XML 文件的路径为 `classpath*:/mapper/*.xml`,并设置了主键生成策略为自增。这一部分配置确保了 MyBatis-Plus 能够正确扫描并加载 Mapper 文件,并且按照指定的规则处理主键生成 [^1]。 ### 自动配置类和 Bean 创建 MyBatis-Plus 的自动配置由 `MybatisPlusAutoConfiguration` 类负责。该类会根据应用程序的配置自动创建必要的 Bean,如 `SqlSessionFactory` 和 `MapperScannerConfigurer`。此外,还会创建 `GlobalConfig` 和 `MybatisPlusProperties` Bean,这些 Bean 包含了 MyBatis-Plus 的全局配置信息 [^3]。 ### 多数据源配置 如果项目中需要使用多个数据源(例如 MySQL 和 SQL Server),可以通过配置类来实现。以下是一个典型的配置类示例: ```java @Configuration @MapperScan("com.kfc.oatosrm.mapper") public class MybatisPlusConfig { @Bean public MybatisPlusInterceptor mybatisPlusInterceptor() { MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor(); interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL)); interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.SQL_SERVER)); return interceptor; } } ``` 此配置类通过 `@Configuration` 注解声明为配置类,并使用 `@MapperScan` 注解指定 Mapper 接口的扫描路径。`MybatisPlusInterceptor` 被配置为支持分页插件,并针对不同的数据库类型(MySQL 和 SQL Server)添加了内部分页拦截器 [^4]。 ### 注意事项 1. **版本兼容性**:不同版本的 MyBatis-Plus 可能存在 API 差异,因此在升级或更换版本时,建议参考官方文档,以确保代码的兼容性 [^5]。 2. **SQL 日志**:为了方便调试,可以通过 `log-impl` 配置查看执行的 SQL 语句。 3. **动态数据源**:如果需要支持多数据源,可以引入 `dynamic-datasource-spring-boot-starter` 并进行相应的配置 [^5]。 通过以上配置,可以确保 MyBatis-Plus 3.5 在项目中正确运行,并且能够灵活应对不同的业务需求和技术挑战。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值