Mybatis报错:无法找到xml文件情况总结

Mybatis报错:无法找到xml文件情况总结

报错内容:

Exception in thread "main" java.lang.ExceptionInInitializerError
	at Test2.main(Test2.java:20)
Caused by: org.apache.ibatis.exceptions.PersistenceException: 
### Error building SqlSession.
### The error may exist in com/yan/repository/UserRepository.xml
### Cause: org.apache.ibatis.builder.BuilderException: Error parsing SQL Mapper Configuration. Cause: java.io.IOException: Could not find resource com/yan/repository/UserRepository.xml
	at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:30)
	at org.apache.ibatis.session.SqlSessionFactoryBuilder.build(SqlSessionFactoryBuilder.java:80)
	at org.apache.ibatis.session.SqlSessionFactoryBuilder.build(SqlSessionFactoryBuilder.java:64)
	at com.yan.utils.MybatisUtils.(MybatisUtils.java:18)
	... 1 more
Caused by: org.apache.ibatis.builder.BuilderException: Error parsing SQL Mapper Configuration. Cause: java.io.IOException: Could not find resource com/yan/repository/UserRepository.xml
	at org.apache.ibatis.builder.xml.XMLConfigBuilder.parseConfiguration(XMLConfigBuilder.java:121)
	at org.apache.ibatis.builder.xml.XMLConfigBuilder.parse(XMLConfigBuilder.java:98)
	at org.apache.ibatis.session.SqlSessionFactoryBuilder.build(SqlSessionFactoryBuilder.java:78)
	... 3 more
Caused by: java.io.IOException: Could not find resource com/yan/repository/UserRepository.xml
	at org.apache.ibatis.io.Resources.getResourceAsStream(Resources.java:114)
	at org.apache.ibatis.io.Resources.getResourceAsStream(Resources.java:100)
	at org.apache.ibatis.builder.xml.XMLConfigBuilder.mapperElement(XMLConfigBuilder.java:372)
	at org.apache.ibatis.builder.xml.XMLConfigBuilder.parseConfiguration(XMLConfigBuilder.java:119)
	... 5 more

阅读报错信息的正确操作:从后往前看。

  1. 检查xml文件名和主配置文件中注册的文件名,以及xml文件中命名空间中文件名是否一致。

  2. 检查xml文件写法是否规范,常见:id和类/接口中的方法名不一致,resultType和parameterType写法有误,包含额外空格,和类/接口中不一致,包含中文,乱码等。

  3. 没有放在资源目录下,需要在pom.xml依赖文件中添加以下声明

        <build>
            <resources>
                <resource>
                    <directory>src/main/javadirectory>
                    <includes>
                        <include>**/*.xmlinclude>
                    includes>
                resource>
            resources>
        build>
    
    1. 在主配置xml文件中,注册mapper的路径形式,使用文件路径xxx/xxx/xxx.xml:

      <mapper resource="com/yan/repository/UserRepository.xml"/>
      
    2. 在类的xml文件中,命名空间的路径形式,使用点:

      <mapper namespace="com.yan.repository.UserRepository">
      

你可能感兴趣的:(Mybatis报错:无法找到xml文件情况总结)