mybatis 错误,找不到mapper?

这是mybatis-config.xml:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url"
                          value="jdbc:mysql://localhost:3306/jupan_mail?useUnicode=true&amp;characterEncoding=UTF-8&amp;"/>
                <property name="username" value="root"/>
                <property name="password" value="password"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="com/salamander/backcal/mapping/MailChangeMapper.xml"/>
    </mappers>
</configuration>

这是项目结构:

clipboard.png

单元测试报错:
Cause: org.apache.ibatis.builder.BuilderException: Error parsing SQL Mapper Configuration. Cause: java.io.IOException: Could not find resource com/salamander/backcal/dao/MailChangeMapper.xml

阅读 10.2k
4 个回答

找到解决方案了(原因是: idea不会编译src的java目录的xml文件):
在pom.xml中添加节点:

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

参考:http://www.cnblogs.com/canger...

将非java文件移至resources目录中。

com/salamander/backcal/dao/MailChangeMapper.xml
报错的路径是dao这个包下的。
但是你贴的配置却和报错的路径是不同的。
引人深思

活着配置一个<sanner></scanner>类似的标签,试试看。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏