Resuelve el conflicto de dependencia entre Mybatis-plus y Mybatis

descripción incorrecta

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:

Descripción

Versión SpringBoot: 2.3.9. LANZAMIENTO
Versión MyBatis-plus: 3.3.1

Este problema no existía al principio, era normal en la versión 2.X de SpringBoot, pero después de actualizar la versión de SpringBoot, ocurrió este problema.
Inserte la descripción de la imagen aquí

Proceso de resolución

En primer lugar, no saque una conclusión decisiva sobre cuál es el problema. Para problemas como este, puede usar la herramienta IDEA para localizarlo. Haga clic en [1] para ingresar la posición del código correspondiente. Tenga en cuenta que debe hacer clic en el Descargar el mensaje de origen en la esquina superior derecha para descargar el código fuente y
Inserte la descripción de la imagen aquí
esperar a que se descargue el código. Después de eso, puede ver claramente que la configuración no tiene un método getLanguageDriver. Cuando ingresa al objeto de configuración,
Inserte la descripción de la imagen aquí
puede ver que finalmente se encuentra en la posición superior, y luego vea la palabra clave extiende para analizar que getLanguageDriver debe existir en las siguientes dos clases de

com.baomidou.mybatisplus.core.MybatisConfiguration
org.apache.ibatis.session.Configuration

En el análisis de las dos rutas de paquetes anteriores, puede ver que el primero pertenece a la dependencia de mybatisplus.core, y el segundo pertenece a la dependencia de mybatis, por lo que probaré los dos casos por separado.
1. Actualice el dependencia del paquete mybatisplus. Pero mi lado ya es una versión muy alta. Después de actualizar a la última versión a tiempo, todavía no veo el método getLanguageDriver, por lo que el problema no está aquí.
2. Actualice el paquete mybatis, porque el mybatis-plus-boot-starter introducido se ha integrado en el paquete MyBatis, por lo que debe excluirlo primero y luego introducir una versión superior separada de la dependencia del paquete MyBatis

Inserte la descripción de la imagen aquí
Una vez completada la actualización, ingrese la posición incorrecta en este momento, puede ver que es normal

Inserte la descripción de la imagen aquí

Puede ver que la lógica de procesamiento final de este método se completa con la clase principal
org.apache.ibatis.session.Configuration # getLanguageDriver

Supongo que te gusta

Origin blog.csdn.net/Octopus21/article/details/114879758
Recomendado
Clasificación