当前位置: 代码迷 >> Java Web开发 >> mybatis 找不到映射器xml文件,该如何处理
  详细解决方案

mybatis 找不到映射器xml文件,该如何处理

热度:76   发布时间:2016-04-13 22:40:19.0
mybatis 找不到映射器xml文件
我用的idea,一个java web项目,src/main/下面有三个文件夹:java,resources,webapp。当我在配置mybatsi-config.xml的<mappers>时,当我把文件放在angus.mapper.StudentMapper接口的同目录下,并配置

<mappers>
        <mapper resource="angus/mapper/StudentMapper.xml"/>

出现了找不到xml文件的,Error parsing SQL Mapper Configuration. Cause: java.io.IOException: Could not find resource angus/mapper/StudentMapper.xml
当我把StudentMapper.xml移动到resources文件夹(mybatis-config.xml也在这个文件夹)时,

 <mappers>
        <mapper resource="StudentMapper.xml"/>
    </mappers>

就可以了。因为xml文件很多,不想放在resources文件夹中,而且将Mapper接口和xml文件放在一块更容易修改。请大神帮忙!!!!!!
还有:官方文档给出的下面几个方法是怎么使用的呢?
<!-- Using classpath relative resources -->
<mappers>
  <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
  <mapper resource="org/mybatis/builder/PostMapper.xml"/>
</mappers>
<!-- Using url fully qualified paths -->
<mappers>
  <mapper url="file:///var/mappers/AuthorMapper.xml"/>
  <mapper url="file:///var/mappers/BlogMapper.xml"/>
  <mapper url="file:///var/mappers/PostMapper.xml"/>
</mappers>
<!-- Using mapper interface classes -->
<mappers>
  <mapper class="org.mybatis.builder.AuthorMapper"/>
  <mapper class="org.mybatis.builder.BlogMapper"/>
  <mapper class="org.mybatis.builder.PostMapper"/>
</mappers>
<!-- Register all interfaces in a package as mappers -->
<mappers>
  <package name="org.mybatis.builder"/>
</mappers>

------解决思路----------------------
SpringMVC 集成 MyBatis,配置 mapper xml
    <!-- 2. SQL session factory -->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource" />
        <property name="mapperLocations" value="classpath:mybatis-mapper/**/*.xml" /> <!-- Mapper xml -->
    </bean>


可以参考Spring 集成 MyBatis http://qtdebug.com/java/13.%20Spring%20集成%20MyBatis.html
------解决思路----------------------
楼主 终于解决这问题了  困扰我好久了

原因是: idea不会编译src的java目录的xml文件

所以解决思路就是:将IDEA maven项目中src源代码下的xml等资源文件编译进classes文件夹

具体操作方法就是:配置maven的pom文件配置,在<build>节点下添加<resources>代码:
    <build>
        <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.xml</include>
                </includes>
            </resource>
        </resources>
    </build>
  相关解决方案