解决SpringBoot整合Mybatis和Mybatis-Plus不能公用(版本兼容性问题)
创始人
2024-03-13 23:54:31
0

1 前言

虽然Mybatis-Plus很好使,可以帮助我们生成CRUD的接口,但是有的情况下我们需要联合其他表进行多表查询,这时候Mybatis可以手写SQL的优势就体现出来了,一般在开发中,很多项目都是Mybatis和Mybatis-Plus公用的,但是公用也有有版本不兼容的问题

2 发现问题

今天打算使用SpringBoot整合Mybatis和Mybatis-Plus,但是发现不能共同

具体体现为:我手写了一个mapper.xml文件,然后使用接口去调用里面的sql,但是报了一个很经典的问题:

Invalid bound statement (not found): com.wyh.mapper.IUserMapper.queryAllUser

在这里插入图片描述
这个问题很常见。我相信不少后端开发都遇到过,意识是识别不了对应的mapper.xml

常见的发生场景可以参考我这篇文章:解决Mybatis报错并分析原因:Invalid bound statement (not found): com.xxx.mapper.xxx

3 分析问题

经过我一行行代码的调试,我敢肯定这个问题的原因不符合上述的任意一种情况

真的是一行行代码删除测试,一个类一个类的改动去测试,这是我的一个实体,去掉相关MP的代码
在这里插入图片描述

最终我定位到:是因为Mybatis和Mybatis-Plus不能公用,我认为是版本不兼容的问题

4 解决问题

如何证明是版本不兼容呢?

这是我报错的时候的依赖版本
在这里插入图片描述
会报错:
在这里插入图片描述

mybatis的版本我没有改动,只是将mybatis-plus的版本从3.1.1提升到了3.3.0

修改完版本后再次运行解决问题
在这里插入图片描述

这时候再把相关Mybatis-Plus的代码还原,哪怕同时编写Mybatis的sql和Mybatis-Plus自带的API都是可以的,没有任何问题

接口和方法名称写的比较糙。。。只是为了方便测试
在这里插入图片描述
在这里插入图片描述

5 Mybatis和Mybatis-Plus的相关依赖:

 		org.mybatis.spring.bootmybatis-spring-boot-starter2.1.3com.baomidoumybatis-plus-boot-starter3.3.0

6 总结

目前我想到解决这个问题的版本就是提高Mybatis-Plus的版本去支持Mybatis,如果大家有别的办法欢迎评论!

最后不得不感叹:这种问题真的好难发现啊!!!

相关内容

热门资讯

汽车油箱结构是什么(汽车油箱结... 本篇文章极速百科给大家谈谈汽车油箱结构是什么,以及汽车油箱结构原理图解对应的知识点,希望对各位有所帮...
美国2年期国债收益率上涨15个... 原标题:美国2年期国债收益率上涨15个基点 美国2年期国债收益率上涨15个基...
嵌入式 ADC使用手册完整版 ... 嵌入式 ADC使用手册完整版 (188977万字)💜&#...
重大消息战皇大厅开挂是真的吗... 您好:战皇大厅这款游戏可以开挂,确实是有挂的,需要了解加客服微信【8435338】很多玩家在这款游戏...
盘点十款牵手跑胡子为什么一直... 您好:牵手跑胡子这款游戏可以开挂,确实是有挂的,需要了解加客服微信【8435338】很多玩家在这款游...
senator香烟多少一盒(s... 今天给各位分享senator香烟多少一盒的知识,其中也会对sevebstars香烟进行解释,如果能碰...
终于懂了新荣耀斗牛真的有挂吗... 您好:新荣耀斗牛这款游戏可以开挂,确实是有挂的,需要了解加客服微信8435338】很多玩家在这款游戏...
盘点十款明星麻将到底有没有挂... 您好:明星麻将这款游戏可以开挂,确实是有挂的,需要了解加客服微信【5848499】很多玩家在这款游戏...
总结文章“新道游棋牌有透视挂吗... 您好:新道游棋牌这款游戏可以开挂,确实是有挂的,需要了解加客服微信【7682267】很多玩家在这款游...
终于懂了手机麻将到底有没有挂... 您好:手机麻将这款游戏可以开挂,确实是有挂的,需要了解加客服微信【8435338】很多玩家在这款游戏...