首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

MyBatis-Plus与PageHelper的jsqlparser库冲突问题

  • 25-03-07 03:41
  • 3872
  • 9940
blog.csdn.net
背景介绍

在最近的一个项目中,我们决定将Spring Boot升级至3.x版本,并同时升级了MyBatis-Plus到最新版本(3.5.7)。然而,在完成这些升级之后,我们遇到了一个问题:分页插件PageHelper无法正常工作。经过排查发现,这是因为MyBatis-Plus和PageHelper都依赖于jsqlparser库,但它们所依赖的版本存在冲突。

问题描述

我们的项目使用了以下依赖:

  • MyBatis-Plus: 版本3.5.7
  • PageHelper: 版本2.1.0

PageHelper要求使用的jsqlparser版本为4.7,而MyBatis-Plus可能引入了一个不同版本的jsqlparser。这种不一致导致了兼容性问题,使得PageHelper不能正确解析SQL语句,从而影响了其分页功能的正常使用。

冲突原因分析

由于两个库都依赖于jsqlparser,当两个库对jsqlparser的版本有不同的需求时,就会发生冲突。例如,PageHelper需要jsqlparser的特定版本来确保其解析SQL的能力,而MyBatis-Plus可能引入了一个更新或更旧版本的jsqlparser,这可能会破坏PageHelper的功能。

解决方案详解

为了确保项目的正常运行,我们需要手动解决这个依赖冲突。以下是详细的解决方案:

步骤一:排除冲突的jsqlparser依赖

在pom.xml文件中,针对MyBatis-Plus和PageHelper的依赖,分别排除其自带的jsqlparser依赖。这样做的目的是避免自动导入的jsqlparser版本之间产生冲突。

<dependency>
    <groupId>com.baomidougroupId>
    <artifactId>mybatis-plus-boot-starterartifactId>
    <version>3.5.7version>
    <exclusions>
        <exclusion>
            <groupId>com.github.jsqlparsergroupId>
            <artifactId>jsqlparserartifactId>
        exclusion>
    exclusions>
dependency>
<dependency>
    <groupId>com.github.pagehelpergroupId>
    <artifactId>pagehelper-spring-boot-starterartifactId>
    <version>2.1.0version>
    <exclusions>
        <exclusion>
            <groupId>com.github.jsqlparsergroupId>
            <artifactId>jsqlparserartifactId>
        exclusion>
    exclusions>
dependency>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
步骤二:添加指定版本的jsqlparser依赖

接下来,在pom.xml中明确添加jsqlparser 4.7版本的依赖。这样做是为了确保项目中所有依赖jsqlparser的地方都使用相同版本的库,从而避免潜在的兼容性问题。

<dependency>
    <groupId>com.github.jsqlparsergroupId>
    <artifactId>jsqlparserartifactId>
    <version>4.7version>
dependency>
  • 1
  • 2
  • 3
  • 4
  • 5
注意事项

尽管通过上述步骤可以解决依赖冲突问题,但在实际开发过程中,还是建议尽量避免同时使用MyBatis-Plus和PageHelper。因为即使解决了当前的版本冲突问题,未来随着库的更新,可能会出现新的不兼容情况。此外,MyBatis-Plus自身也提供了分页插件,可以作为替代方案考虑。

注:本文转载自blog.csdn.net的李少兄的文章"https://blog.csdn.net/wenxuankeji/article/details/145522696"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2492) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

103
后端
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2024 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top