mybatis和mybatis-plus同时使用的坑

作者:马格南之鹰 时间:2021-07-22 14:03:13 

原项目基于mybatis开发,新功能基于mybatis-plus开发,同时依赖如下两个jar包

  • mybatis-spring-boot-starter

  • mybatis-plus-boot-starter

启动时报错:java.lang.NoClassDefFoundError: org/mybatis/logging/LoggerFactory,详情如下:

Unsatisfied dependency expressed through bean property 'sqlSessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlSessionFactory' defined in class path resource [com/baomidou/mybatisplus/autoconfigure/MybatisPlusAutoConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.apache.ibatis.session.SqlSessionFactory]: Factory method 'sqlSessionFactory' threw exception; nested exception is java.lang.NoClassDefFoundError: org/mybatis/logging/LoggerFactory
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:643)
    at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:130)
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:399)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1422)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:594)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:517)
    at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:323)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:321)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:879)
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:878)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:550)
    at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:141)
    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:747)
    at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:397)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:315)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1226)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1215)
    at com.xxx.XXXApplication.main(XXXApplication.java:24)

解决方法:

删除 mybatis-spring-boot-starter依赖,更新依赖(idea中在pom.xml文件上右键,执行maven->reload project)

启动后错Invalid bound statement (not found)

[TRACEID:] 2021-03-26T10:48:21,900 ERROR [main] c.a.b.c.XXXXDataLoader:31 DefaultRangeDataLoader error info = Invalid bound statement (not found): com.xxx.dao.mapper.XXXMapper.xxx
org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.xxx.dao.mapper.XXXMapper.xxx
    at org.apache.ibatis.binding.MapperMethod$SqlCommand.<init>(MapperMethod.java:235)
    at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.<init>(MybatisMapperMethod.java:50)
    at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.lambda$cachedMapperMethod$0(MybatisMapperProxy.java:101)
    at java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1660)
    at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.cachedMapperMethod(MybatisMapperProxy.java:100)
    at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:95)
    at com.sun.proxy.$Proxy250.subscribeSizeStatistics(Unknown Source)

解决方法: 

将服务配置文件中mybatis.mapper-locations的配置挪到mybatis-plus下,样例如下:

原配置如下:

mybatis:
   mapper-locations: classpath:mybatis/*.xml

新配置:

mybatis-plus:
   mapper-locations: classpath:mybatis/*.xml,classpath:/mybatis-plus/*.xml

来源:https://blog.csdn.net/rdc2008/article/details/115231414

标签:mybatis,mybatis-plus
0
投稿

猜你喜欢

  • SpringBoot 使用Prometheus采集自定义指标数据的方案

    2023-04-25 02:50:39
  • spring boot使用拦截器修改请求URL域名 换 IP 访问的方法

    2022-08-21 20:15:53
  • Java实现的计算最大下标距离算法示例

    2022-02-09 19:14:37
  • 一篇文章告诉你JAVA Mybatis框架的核心原理到底有多重要

    2023-11-13 06:20:10
  • Java ArrayList与LinkedList使用方法详解

    2023-08-12 08:23:46
  • 深入理解java final不可变性

    2023-02-11 20:17:27
  • c# 字符串操作总结

    2022-03-16 05:59:25
  • java实现实时通信聊天程序

    2023-10-18 09:08:06
  • JAVA实现扫描线算法(超详细)

    2023-06-30 13:33:20
  • Android ViewPager实现图片轮翻效果

    2023-08-01 00:30:57
  • 利用json2POJO with Lombok 插件自动生成java类的操作

    2023-07-12 09:31:28
  • 超详细的Intellij IDEA 看源码必备技能

    2021-10-27 09:03:16
  • SpringBoot配置log4j输出日志的案例讲解

    2023-07-30 18:54:50
  • Hibernate批量处理海量数据的方法

    2023-07-30 08:12:04
  • java实现基因序列比较的示例代码

    2022-01-03 02:32:22
  • Java实现新建有返回值的线程的示例详解

    2022-02-13 17:09:33
  • C#调用VB进行简繁转换的方法

    2023-02-25 23:19:43
  • Windows下Java环境配置的超详细教程

    2021-12-18 19:19:16
  • C#怎样才能将XML文件导入SQL Server

    2022-02-16 17:51:13
  • C#实现骑士飞行棋

    2022-01-13 18:50:29
  • asp之家 软件编程 m.aspxhome.com