You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaFX+MyBatis+SQLite项目无法找到mapper/UserMapper.xml资源求助

解决MyBatis无法找到resources/mapper下XML文件的问题

问题现象

搭建JavaFX+MyBatis+SQLite项目时,将UserMapper.xml放在src/main/resources/mapper/目录下,系统报错:

Could not find resource mapper/UserMapper.xml

调试Resources.getResourceAsStream()方法时,发现系统类加载器路径未包含预期的resources路径,但将XML直接放在src/main/resources/根目录时,项目可正常运行。

排查与解决方案

1. 确认构建后资源是否存在

先检查项目构建后的输出目录:

  • Maven项目查看target/classes/
  • Gradle项目查看build/resources/main/

确认其中是否存在mapper文件夹及UserMapper.xml文件。如果没有,说明构建工具未将mapper目录下的资源文件复制到类路径中,需调整构建配置。

2. 调整构建工具配置

Maven项目(pom.xml)

在<build>节点下添加资源配置,确保包含resources目录下所有子文件夹及文件:

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

Gradle项目(build.gradle)

配置sourceSets确保resources目录下所有资源被正确打包:

sourceSets {
    main {
        resources {
            srcDirs = ['src/main/resources']
            includes = ['**/*']
        }
    }
}

3. 检查MyBatis核心配置文件路径

打开MyBatis配置文件(如mybatis-config.xml),确认mapper的资源路径配置正确:

  • 直接指定XML文件时,使用类路径相对路径,不要加前导斜杠:
<mappers>
    <mapper resource="mapper/UserMapper.xml"/>
</mappers>
  • 也可以使用包扫描方式(需确保Mapper接口与XML文件名一致,且接口所在包对应类路径中的mapper目录):
<mappers>
    <package name="com.yourproject.mapper"/>
</mappers>

4. IDE刷新与重新构建

如果是IDE(如IntelliJ IDEA)中运行,执行以下操作:

  • 右键项目 → Reload All Maven Projects(Maven项目)或 Refresh Gradle Project(Gradle项目)
  • 执行Build → Rebuild Project,确保资源文件被同步到输出目录

内容的提问来源于stack exchange,提问作者qcrrm

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 01:17:35