Fork me on GitHub

java.io.IOException: Could not find resource mapper/ProductCategoryMapper.xml 解决方案

java.io.IOException: Could not find resource mapper/ProductCategoryMapper.xml 解决方案

 

一、问题背景

通过 MyBatis Plus 测试 达梦数据库过程中,运行测试类的时候,项目报错:“java.io.IOException: Could not find resource mapper/ProductCategoryMapper.xml

工程的目录结构如下:

 

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>
    <!-- <!– 引入 db.properties 文件 –> -->
    <properties resource="jdbc.properties"></properties>
    <!-- 配置 mybatis 运行环境-->
    <environments default="development">
        <environment id="development">
            <!-- 配置事务管理,采用 JDBC 的事务管理 -->
            <transactionManager type="JDBC"/>
            <!-- POOLED:mybatis 自带的数据源,JNDI:基于 Tomcat 的数据源 -->
            <!--使用 DB.properties-->
            <dataSource type="POOLED">
                <property name="driver" value="${jdbc.driver}"/>
                <property name="url" value="${jdbc.url}"/>
                <property name="username" value="${jdbc.username}"/>
                <property name="password" value="${jdbc.password}"/>
            </dataSource>
        </environment>
    </environments>
    <!-- 将 mapper 文件加入到配置文件中 mapper 文件是写 SQL 语句的文件 -->
    <mappers>
        <!--普通数据的增删改查/-->
        <mapper resource="mapper/ProductCategoryMapper.xml"/>
        <!--大字段的操作/-->
        <mapper resource="mapper/BigDataMapper.xml"/>
    </mappers>
</configuration>

 

二、原因分析

没有将 resources 目录设置为资源根目录,因为IntelliJ IDEA检索 mybatis-config.xml 文件及其配置时,默认从资源根目录去查找,而此时的 resources 是一个手动创建的普通目录,IntelliJ IDEA是不会去检索。

 

三、解决方案

resources 设置为资源根目录即可,设置过程如下:
右键点击 resources 目录,选择"Mark Directory as"--> "Resources Root"

 

设置后,测试类即可正常运行,运行效果如下:

 

posted @ 2023-10-16 19:00  龙凌云端  阅读(23)  评论(0编辑  收藏  举报