当前位置: 首页 > news >正文

mybatis 和 mybatisPlus 兼容性问题

项目采用的是 mybatis, 后续引入了 mybatisPlus,用 mybatisX 创建的四个类一直报错,提示找不到符号,意识到 mybatis 和 mybatisPlus 的兼容性问题,通过修改配置 两者的配置如下

#配置mybatis配置
mybatis:type-aliases-package: top.year21.computerstore.entitymapper-locations: classpath:mybatis/mapper/*.xmlconfiguration:#开启在mybatis处理过程中打印出对应的sql语句功能log-impl: org.apache.ibatis.logging.stdout.StdOutImpl#开启数据库字段自动转换为驼峰命名map-underscore-to-camel-case: true# 配置 mybatisPlus 配置
mybatis-plus:type-aliases-package: top.year21.computerstore.plusEntitymapper-locations: classpath:mapper/*.xml

启动时又报错如下:

查到可能是 MyBatis 和 MyBatisPlus 版本兼容性问题

原配置:

其中 3.5.9 的版本可能还需要新增依赖:

所以我将 mybatisPlus 的依赖版本降为了 3.5.3

成功启动项目。

调用接口方法时报错:

查到是 xml 文件识别的问题,在网上查了很久但是一直不能解决,注意到 在执行到 IUserServiceImpl 中的第 91行时,

会调用到 mapper 提供的方法,根据错误递归栈发现后续直接走的 mybatisplus,没有走 mybatis,而我的 mybatisPlus 配置的 classpath 和 type-aliases-package 并没有包含UserMapper 对应的 xml 文件

后续通过修改 mybatisplus 的配置,并将 plusEntity 中的 TProductCategory 和 mapper 中的 TProductCategoryMapper 分别移动到 entity 和 mybatis/mapper 中解决了问题。

#配置mybatis配置
#mybatis:
#  type-aliases-package: top.year21.computerstore.entity
#  mapper-locations: classpath:mybatis/mapper/*Mapper.xml
#  configuration:
#    #开启在mybatis处理过程中打印出对应的sql语句功能
#    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
#    #开启数据库字段自动转换为驼峰命名
#    map-underscore-to-camel-case: true# 配置 mybatisPlus 配置
mybatis-plus:type-aliases-package: top.year21.computerstore.entitymapper-locations: classpath:mybatis/mapper/*Mapper.xml        # MyBatis-Plus 的 XML Mapper 路径(可选,如果使用 XML)configuration:map-underscore-to-camel-case: truelog-impl: org.apache.ibatis.logging.stdout.StdOutImpl

总结一下:当有 MyBatisPlus 时,会优先选用 MyBatisPlus ,而不是 MyBatis,所以 MyBatisPlus 的配置需要包含所有 xml 和 entiy,避免识别不到的错误。实际上,当引入 MyBatisPlus (MyBatis 的增强)之后,MyBatis 的依赖也以及被引入了,不需要单独引入或配置。

http://www.lryc.cn/news/515482.html

相关文章:

  • Mono里运行C#脚本23—mono_jit_exec
  • 第十一章 图论
  • 纯前端实现将pdf转为图片(插件pdfjs)
  • 【IT人物系列】之MySQL创始人
  • 在Typora中实现自动编号
  • Single Shot MultiBox Detector(SSD)
  • kafka生产者专题(原理+拦截器+序列化+分区+数据可靠+数据去重+事务)
  • 【React+TypeScript+DeepSeek】穿越时空对话机
  • 公共数据授权运营系统建设手册(附下载)
  • 基于HTML和CSS的旅游小程序
  • maven之插件调试
  • SQL Sever 数据库损坏,只有.mdf文件,如何恢复?
  • 【AWS SDK PHP】This operation requests `sigv4a` auth schemes 问题处理
  • primevue的<Menu>组件
  • 利用Deeplearning4j进行 图像识别
  • 练习题:37
  • Unity热更文件比较工具类
  • 【hustoj注意事项】函数返回值问题
  • 实现一个通用的树形结构构建工具
  • 数势科技:解锁数据分析 Agent 的智能密码(14/30)
  • 机器学习之过采样和下采样调整不均衡样本的逻辑回归模型
  • 解决 ssh connect to host github.com port 22 Connection timed out
  • mybatis/mybatis-plus中mysql报错
  • 在ros2 jazzy和gazebo harmonic下的建图导航(cartographer和navigation)实现(基本)
  • 《Rust权威指南》学习笔记(五)
  • GitHub的简单操作
  • 「Mac畅玩鸿蒙与硬件54」UI互动应用篇31 - 滑动解锁屏幕功能
  • SMMU软件指南之系统架构考虑
  • 使用高云小蜜蜂GW1N-2实现MIPI到LVDS(DVP)转换案例分享
  • 「C++笔记」unordered_map:哈希化的无序映射函数(键值对)