解决Spring boot整合mybatis,xml资源文件放置及路径配置问题

 更新时间:2020年12月02日 15:06:37   作者:babyyaoyao  
这篇文章主要介绍了解决Spring boot整合mybatis,xml资源文件放置及路径配置问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

网上各种解决方案,我试了好久,整合了几篇文章才凑出来,在这里分享一下,实在不想网友们在这里面绕圈子,毕竟,写代码的时间是愉快的,解决bug也是愉快的,但也是一直在bug里面绕圈子就不爽了。

亲自试验:

1) 我的mapper和xml是这样子放置的

2) 在.xml中namespace是这样的:

3) application.properties中mybatis.mapper-locations得这么配置到xml

4) 最后呢,你只要在pom.xml中build下这样配置

5) 按照我这种位置防止,把响应的包名换成自己的,就基本上不会没有什么问题的。

也不用去加什么*Application中去加什么注解@MapperScan(value = "com.acme.shop.mapper")什么的了,不需要呢。

补充知识:mybatis-plus的 mapper.xml 路径配置的坑

问题:

在SpringBoot整合MyBatis时,若mapper映射文件在java路径下,就会一直报错Invalid bound statement (not found): xxx.xxxMapper.selectxx

说明Mapper接口是可以调用到的,问题就出在无法映射到Mapper.xml文件。

同时查看输出target目录下,没有xxxmapper.xml文件的编译结果。

原因:

SpringBoot默认配置情况下,只有resources路径下的xml文件会被扫描。

解决办法:

方法一:【推荐使用】

将mapper映射文件放在resources目录下,通常会在resources目录下建一个mapper目录,存放各种mapper的映射文件,

并且在application.properties中配置 Mapper映射文件的路径为:

#指定myBatis的核心配置文件与Mapper映射文件

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

测试成功,查看target目录下,有xxxMapper.xml文件的编译结果。

方法二:

mapper映射文件依旧放在java目录下,

此时,需要在pom.xml文件中添加java路径下xml文件扫描配置,

 <build>
   <resources>
     <resource>
      <filtering>true</filtering>
      <directory>${basedir}/src/main/java</directory>
      <includes>
        <include>**/*.xml</include>
      </includes>
     </resource>
     <resource>
      <directory>${basedir}/src/main/java</directory>
      <excludes>
        <exclude>**/*.xml</exclude>
      </excludes>
     </resource>
   </resources>
</build>

并且在application.properties中配置 Mapper映射文件的路径时要加上包名,

#mybatis.mapper-locations=classpath:包名/*.xml

mybatis.mapper-locations=classpath:org.xiao.dao/*.xml

测试成功,查看target目录下,有xxxMapper.xml文件的编译结果。

以上这篇解决Spring boot整合mybatis,xml资源文件放置及路径配置问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Java编程线程间通信与信号量代码示例

    Java编程线程间通信与信号量代码示例

    这篇文章主要介绍了Java编程线程间通信与信号量代码示例,具有一定借鉴价值,需要的朋友可以参考下。
    2017-12-12
  • Java单例模式、饥饿模式代码实例

    Java单例模式、饥饿模式代码实例

    这篇文章主要介绍了Java单例模式、饥饿模式代码实例,本文直接给出代码实例,需要的朋友可以参考下
    2015-05-05
  • JAVA 格式化日期、时间的方法

    JAVA 格式化日期、时间的方法

    这篇文章主要介绍了JAVA 格式化日期、时间的方法,文中讲解非常细致,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-06-06
  • java多线程编程之从线程返回数据的两种方法

    java多线程编程之从线程返回数据的两种方法

    从线程中返回数据和向线程传递数据类似。也可以通过类成员以及回调函数来返回数据。但类成员在返回数据和传递数据时有一些区别,下面让我们来看看它们区别在哪
    2014-01-01
  • Java接收text/event-stream格式数据的详细代码

    Java接收text/event-stream格式数据的详细代码

    这篇文章主要介绍了java接收text/event-stream格式数据,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-07-07
  • HashMap 和 Hashtable的区别

    HashMap 和 Hashtable的区别

    本文主要介绍HashMap 和 Hashtable的区别,这里整理了相关资料并详细介绍了HashMap 和 Hashtable的区别及其工作原理和使用方法,有需要的朋友可以看一下
    2016-09-09
  • Java如何从json字符串中获取某个值详解

    Java如何从json字符串中获取某个值详解

    Java开发当中经常需要Json格式的数据,下面这篇文章主要给大家介绍了关于Java如何从json字符串中获取某个值的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-08-08
  • 一篇文章解决Java异常处理

    一篇文章解决Java异常处理

    这篇文章主要给大家介绍了关于如何通过一篇文章解决Java异常处理的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • Springboot+MybatisPlus+Oracle实现主键自增的示例代码

    Springboot+MybatisPlus+Oracle实现主键自增的示例代码

    这篇文章主要介绍了Springboot+MybatisPlus+Oracle实现主键自增的示例代码,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-11-11
  • 工厂模式_动力节点Java学院整理

    工厂模式_动力节点Java学院整理

    这篇文章主要介绍了工厂模式_动力节点Java学院整理的相关资料,需要的朋友可以参考下
    2017-08-08

最新评论