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"
设置后,测试类即可正常运行,运行效果如下: