MyBatis找不到Mapper.xml文件的解决方法

报错:

### Error building SqlSession.
### The error may exist in com/southwind/repository/StudentRepository.xml
### Cause: org.apache.ibatis.builder.BuilderException: Error parsing SQL Mapper Configuration. Cause: java.io.IOException: Could not find resource com/southwind/repository/StudentRepository.xml

MyBatis需要的组件主要有三个:实体类、接口类、Mapper.xml
一般配置文件都是放在resources文件夹中,该文件夹是配置文件的根目录,java代码读取该文件夹中的xml文件不需要做其他配置,如果配置文件不在该文件夹,则需要修改pom.xml
提出两种方案:

方案一

Mapper.xml没有在MyBatis的配置文件中配置,这时需要在MaBatis的配置文件中添加一个Mapper.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>
<!--    配置Mybatis的运行环境-->
<!--    default选择数据源-->
    <environments default="development">
<!--        配置多个数据源-->
        <environment id="development">
<!--            配置JDBC的数据管理-->
            <transactionManager type="JDBC"></transactionManager>
<!--            POOLED配置JDBC数据源连接池-->
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/mybatis?useUnicode=true&amp;characterEncoding=UTF-8"/>
                <property name="username" value="root"/>
                <property name="password" value="123456"/>
            </dataSource>
        </environment>
    </environments>

    <!-- 注册AccountMapper.cml -->
    <mappers>
        <mapper resource="com/southwind/repository/StudentRepository.xml"></mapper>//这里是添加的StudentRepository.xml,新增则添加一个mapper标签
    </mappers>
</configuration>

方案二

检查Mapper.xml,是不是放在了java文件夹下面,java代码默认是无法读取该文件夹下的配置问价的,需要在pom.xml中配置,在<project></project>标签中添加内容

    <!--这个配置非常容易被忽略,让工程能读取java目录中的xml文件-->
    <build>
        <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.xml</include>
                </includes>
            </resource>
        </resources>
    </build>

这里验证了可以将配置文件都放在resources目录中,可以省略pom.xml中的配置,这是由于resources是配置文件的根目录,所以在MyBatis的配置文件中添加Mapper.xml只需要这样写

    <!-- 注册AccountMapper.cml -->
    <mappers>
        <mapper resource="UserMapper.xml"></mapper>
    </mappers>
posted on 2022-06-21 11:39  小白成长变大神  阅读(2717)  评论(0编辑  收藏  举报