网站地图    收藏    合作   

主页 > 后端 > java >

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

来源:自学PHP网    时间:2020-12-02 16:01 作者:小飞侠 阅读:

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

今天带来解决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文件扫描配置,

 
   
     
      true
      ${basedir}/src/main/java
      
        **/*.xml
      
     
     
      ${basedir}/src/main/java
      
        **/*.xml
      
     
   

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

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

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

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

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


以上就是关于解决Spring boot整合mybatis,xml资源文件放置及路径配置问题全部内容,感谢大家支持自学php网。

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论