mybatis错误——java.io.IOException: Could not find resource com/xxx/xxxMapper.xml

Mybatis加载Mapper的xml出现java.io.IOException: Could not find resource com/xxx/xxxMapper.xml

大家好,又见面了,我是全栈君。

在学习Mybatis的时候,参考网上的教程进行简单demo的搭建,配置的没有问题,然后出现了下面的错误!

  Exception in thread "main" java.lang.RuntimeException: org.apache.ibatis.builder.BuilderException: Error parsing SQL Mapper Configuration. Cause: java.io.IOException: Could not find resource com/mybatis/mapper/StudentMapper.xml
	at com.mybatis.util.MyBatisSqlSessionFactory.getSqlSessionFactory(MyBatisSqlSessionFactory.java:33)
	at com.mybatis.util.MyBatisSqlSessionFactory.main(MyBatisSqlSessionFactory.java:44)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:606)
	at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147)
Caused by: org.apache.ibatis.builder.BuilderException: Error parsing SQL Mapper Configuration. Cause: java.io.IOException: Could not find resource com/mybatis/mapper/StudentMapper.xml
	at org.apache.ibatis.builder.xml.XMLConfigBuilder.parseConfiguration(XMLConfigBuilder.java:106)
	at org.apache.ibatis.builder.xml.XMLConfigBuilder.parse(XMLConfigBuilder.java:89)
	at org.apache.ibatis.session.SqlSessionFactoryBuilder.build(SqlSessionFactoryBuilder.java:77)
	at org.apache.ibatis.session.SqlSessionFactoryBuilder.build(SqlSessionFactoryBuilder.java:63)
	at com.mybatis.util.MyBatisSqlSessionFactory.getSqlSessionFactory(MyBatisSqlSessionFactory.java:31)
	... 6 more
Caused by: java.io.IOException: Could not find resource com/mybatis/mapper/StudentMapper.xml
	at org.apache.ibatis.io.Resources.getResourceAsStream(Resources.java:108)
	at org.apache.ibatis.io.Resources.getResourceAsStream(Resources.java:95)
	at org.apache.ibatis.builder.xml.XMLConfigBuilder.mapperElement(XMLConfigBuilder.java:315)
	at org.apache.ibatis.builder.xml.XMLConfigBuilder.parseConfiguration(XMLConfigBuilder.java:104)
	... 10 more

最终通过上网查找找到了三种解决方案,现在整理总结!希望可以帮助到其他人!
在说解决方案之前,先申明我的环境!我会用的开发工具是IDEA ,项目构建使用Maven!网上一些教程使用的Eclipse开发工具,项目是普通的java web项目,所以开发工具和构建项目不同就会存在一些出入(坑)!

我项目的目录和xxxMapper.xml的位置如下图:
这里写图片描述

原因:IDEA是不会编译src的java目录的xml文件,所以在Mybatis的配置文件中找不到xml文件!(也有可能是Maven构建项目的问题,网上教程很多项目是普通的Java web项目,所以可以放到src下面也能读取到)

解决方案1:

不将xml放到src/main/java目录。而是放到src/resources目录,就是xxxMapper.xml放到Maven构建的resource目录下面!

解决方案2:
在Maven的pom文件中,添加下面代码:

<build>
        <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.xml</include>
                </includes>
            </resource>
        </resources>
    </build>

解决方案2,参考资料:mybatis 找不到映射器xml文件

解决方案3:

我测试时候只有 mapper resource 这种方式加载不到资源,其他的url class和package都可以,如果想解决问题的话,可以不使用resource这种方式!

亲测三种方式都可以!如果还有其他好的解决办法欢迎留言一起学习讨论!


欢迎访问我的csdn博客,我们一同成长!

不管做什么,只要坚持下去就会看到不一样!在路上,不卑不亢!

博客首页http://blog.csdn.net/u010648555

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/121169.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • redhat6.5安装oracle11g安装界面乱码

    redhat6.5安装oracle11g安装界面乱码说明:redhat6.5由于安装的是中文环境,安装执行./runInstaller安装出现以下乱码解决办法:LANG=en_US  ./runInstaller 安装时临时指定语言环境,再执行安装现在可以看到没乱码了!

  • ssl协议未开启是什么意思?如何解决?_ssl协议未开启怎么解决

    ssl协议未开启是什么意思?如何解决?_ssl协议未开启怎么解决本文给大家介绍一下著名的网络安全协议SSL,如果有需要的朋友可以参考学习,希望以下的分享对您的学习有所帮助。安全套接字协议(SecureSocketLayer,SSL)是web浏览器与Web服务器之间安全交换的信息的协议。提供两个基本的安全服务:鉴别与保密。SSL是Netscape于1994年开发的,后来成为了世界上著名的web安全机制,所有主要浏览器都支持SSL协议。SSL协议由两层组成,分…

    2022年10月30日
  • qmap使用

    qmap使用#include<QCoreApplication>#include<QMap>//#include<QVector>#include<QDebug>typedefQMap<QString,int>CMyQMap;intmain(intargc,char*argv[]){QCoreApplica…

  • xshell怎么退出vi_xshell5

    xshell怎么退出vi_xshell5最近在学习Linux时,初次使用Vi编辑模式编辑文本,但是编辑完成之后,不知道怎么退出编辑模式,然后在网上查找了一番,特此分享给各位老铁:下面总结一些vi退出命令,学习!进入编辑模式,按o进行编辑编辑结束,按ESC键跳到命令模式,然后输入退出命令::w 保存文件但不退出vi编辑:w! 强制保存,不退出vi编辑:wfile 将修改另存到file中,不退出vi…

  • Linux 命令完全手册「建议收藏」

    Linux 命令完全手册「建议收藏」这本《Linux命令完全手册》将涵盖你作为开发者需要用到的60个核心Bash命令。每个命令都附有代码示例和用法提示。这本手册遵循二八定律:你花两成的时间学习一个主题,便可获得其中八成的知识。我觉得这种方式能给你一个全面的概述。这本手册并不试图涵盖所有关于Linux及其命令的内容,而是专注于那些你在大部分时间里都会用到的小型核心命令,同时试着简化更复杂命令的用法。以下介绍的命令,在Linux、macOS、WSL和其他类UNIX环境均可使用。我希望这本手册的内…

  • html css is图片,isbackground

    html css is图片,isbackgroundisbackground有何作用首先不是为了多线程而多线程,多线程会极大的带来额外的出错的几率。C#中第一个打开窗口的线程是主线程,也是处理UI的线程,最好保持这个线程通畅,即不要有阻塞操作,如Thread.Sleep(10);等这样是不好的。耗时的线程需要打开新的线程来操作。c#可以使用多少个Thread.IsBackground=true我现在有一个程序,有UDP/TCP/US…

    2022年10月16日

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号