我用的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>