Mybatis-plus與Mybatis依賴沖突問題解決方法
錯誤描述
An attempt was made to call a method that does not exist. The attempt was made from the following location:
com.baomidou.mybatisplus.core.MybatisMapperAnnotationBuilder.getLanguageDriver(MybatisMapperAnnotationBuilder.java:369)
The following method did not exist:
com.baomidou.mybatisplus.core.MybatisConfiguration.getLanguageDriver(Ljava/lang/Class;)Lorg/apache/ibatis/scripting/LanguageDriver;
The method's class, com.baomidou.mybatisplus.core.MybatisConfiguration, is available from the following locations:
說明
SpringBoot版本:2.3.9.RELEASE
MyBatis-plus版本:3.3.1
這個問題不是一開始就存在的,在SpringBoot版本2.X是正常的,但是在提升SpringBoot版本后,就出現(xiàn)了這個問題

解決過程
首先不要果斷的下定論這個是什么問題,類似這樣的問題可以通過IDEA工具定位一下,鼠標點擊【1】位置進入到對應的代碼位置,注意要點擊右上角提示的Download Source下載源碼

待代碼下載完畢之后,這里可以很清晰的看到configuration沒有getLanguageDriver這個方法,在進入到configuration對象

可以看到最終定位到了上面的位置,然后看到extends關鍵字可以分析出getLanguageDriver肯定是存在于下面的倆個類中的
com.baomidou.mybatisplus.core.MybatisConfiguration org.apache.ibatis.session.Configuration
在針對上面?zhèn)z個包路徑分析,可以看到第一個是屬于mybatisplus.core依賴下的,第二個是屬于mybatis依賴下,于是針對這倆種情況分別做個測試
1、升級mybatisplus包依賴,但是我這邊已經是很高的版本的了,及時升級到最新的版本后依然沒有看到getLanguageDriver方法,所以問題不在這里
2、升級mybatis包,由于引入的mybatis-plus-boot-starter已經集成了MyBatis包,所以這里需要首先將其exclude,然后引入單獨的較高版本的MyBatis包依賴

升級完成之后再進入到剛才錯誤的位置,可以看到已經正常了

可以看到最終這個方法處理邏輯是由父類完成的
org.apache.ibatis.session.Configuration#getLanguageDriver
到此這篇關于Mybatis-plus與Mybatis依賴沖突問題解決方法的文章就介紹到這了,更多相關Mybatis-plus與Mybatis依賴沖突內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
IntelliJ IDEA基于SpringBoot如何搭建SSM開發(fā)環(huán)境的步驟詳解
這篇文章主要介紹了IntelliJ IDEA基于SpringBoot如何搭建SSM開發(fā)環(huán)境,本文分步驟通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-10-10
java使用java.io.File類和java.nio.file.Path類對文件重命名
這篇文章主要給大家介紹了關于java使用java.io.File類和java.nio.file.Path類對文件重命名的相關資料,本文僅為日常操作記錄,方便后期使用查找本地電腦文件太多了,又不想一個一個重命名,改名字什么的很麻煩,需要的朋友可以參考下2024-02-02

