mybatis錯誤——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目錄下面,將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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM