Résoudre le conflit de dépendance entre Mybatis-plus et Mybatis

mauvaise description

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:

La description

Version SpringBoot: 2.3.9. VERSION
MyBatis-plus version: 3.3.1

Ce problème n'existait pas au début, c'était normal dans SpringBoot version 2.X, mais après la mise à niveau de la version SpringBoot, ce problème s'est produit
Insérez la description de l'image ici

Processus de résolution

Tout d'abord, ne tirez pas de conclusion décisive sur la nature du problème. Pour de tels problèmes, vous pouvez utiliser l'outil IDEA pour le localiser. Cliquez sur [1] pour saisir la position de code correspondante. Notez que vous devez cliquer sur le bouton Invite Télécharger la source dans le coin supérieur droit pour télécharger le code source et
Insérez la description de l'image ici
attendre que le code soit téléchargé. Après cela, vous pouvez clairement voir que la configuration n'a pas de méthode getLanguageDriver. Lorsque vous entrez l'objet de configuration,
Insérez la description de l'image ici
vous pouvez voir que il est finalement situé à la position supérieure, puis voyez le mot-clé extend pour analyser que getLanguageDriver doit exister dans les deux classes suivantes de

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

Dans l'analyse de ce qui précède deux chemins de package, vous pouvez voir que le premier appartient à la dépendance des mybatisplus.core, et le second appartient à la dépendance des mybatis, donc je vais tester les deux cas séparément.
1. Mettez à niveau le dépendance du package mybatisplus. Mais mon côté est déjà une version très élevée. Après la mise à niveau vers la dernière version à temps, je ne vois toujours pas la méthode getLanguageDriver, donc le problème n'est pas là.
2. Mettez à niveau le package mybatis, car le mybatis-plus-boot-starter introduit a été intégré au package MyBatis, vous devez donc l'exclure d'abord, puis introduire une version supérieure distincte de la dépendance du package MyBatis

Insérez la description de l'image ici
Une fois la mise à niveau terminée, entrez la mauvaise position juste maintenant, vous pouvez voir que c'est normal

Insérez la description de l'image ici

Vous pouvez voir que la logique de traitement final de cette méthode est complétée par la classe parent
org.apache.ibatis.session.Configuration # getLanguageDriver

Je suppose que tu aimes

Origine blog.csdn.net/Octopus21/article/details/114879758
conseillé
Classement