maven打包mybatis-config.xml文件中丢失配置

该博客讲述了在使用MyBatis时遇到的BindingException错误,问题源于打包后实体类缺失导致MapperRegistry无法识别。分析指出是打包配置文件未更新,使得数据库操作失败。解决方法是在pom.xml中添加资源配置,确保打包时更新XML文件,从而避免此类问题。

问题:mybtis报错:org.apache.ibatis.binding.BindingException: Type interface com.joinbright.iot.alarmer.utils.mybatis.dao.AlarmingDataMapper is not known to the MapperRegistry.

原因:项目中配有2个实体类↓

打包后只有1个实体类↓

分析:项目打包时配置文件为旧文件,未更新。当执行数据库操作时就会失败↓

解决办法:在pom.xml中增加如下配置,打包时更新xml文件

<resources>
     <resource>
         <directory>src/main/resources</directory>
             <includes>
				<include>**/*.xml</include>
    		</includes>
            <excludes>
                <!--<exclude>*.properties</exclude>-->
                    <!--<exclude>*.xml</exclude>-->
                    <!--<exclude>mapper/*.xml</exclude>-->
             </excludes>
    </resource>
</resources>

 

<think> 我们正在解决如何在IntelliJ IDEA的resources目录中新建mybatis-config.xml配置文件的问题。根据引用内容,我们可以总结以下步骤: 引用[2]提供了在IDEA中创建自定义文件模板的方法,我们可以利用这个方法来创建mybatis-config.xml文件。具体步骤如下: 1. 在项目结构中,右击resources目录(如果还没有,需要先创建resources目录并标记为Resources Root)。 2. 选择New -> Edit File Templates...(这里引用[2]提到的是通过Edit File Templates来创建新的文件模板)。 3. 在File and Code Templates界面,点击+号添加新模板。 4. 设置模板的名称(如mybatis-config)和扩展名(xml)。 5. 在模板内容中填入MyBatis配置的基本结构(如引用[2]提供的代码)。 但是,需要注意的是,引用[3]指出,如果项目是一个聚合工程(父工程),并且在pom.xml中指定了打包方式为pom,那么resources下的文件可能不会被编译到classes路径下,从而导致找不到配置文件。因此,我们还需确保pom.xml中正确配置了资源目录。 综合以上信息,下面给出完整的解决方案: ### 步骤1:创建resources目录(如果不存在) 1. 在项目视图中,右击项目名称 -> New -> Directory 2. 输入目录名:`src/main/resources` 3. 右击新建的resources目录 -> Mark Directory as -> Resources Root ### 步骤2:创建mybatis-config.xml配置文件 1. 右击resources目录 -> New -> File 2. 输入文件名:`mybatis-config.xml` 3. 或者,使用模板创建(如果已设置模板): - 如果按照引用[2]设置了模板,则可以通过右击resources目录 -> New -> 选择你创建的模板(如mybatis-config)来创建。 ### 步骤3:配置模板(可选,但推荐) 如果你想在创建时自动生成基本结构,可以配置模板: 1. 打开设置:File -> Settings (Windows/Linux) 或 IntelliJ IDEA -> Preferences (macOS) 2. 转到Editor -> File and Code Templates 3. 点击Files选项卡,然后点击+号添加新模板 4. 设置: - Name: `mybatis-config` - Extension: `xml` 5. 在内容区域输入以下基本配置: ```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> <settings> <!-- 设置 --> </settings> <typeAliases> <!-- 类型别名 --> </typeAliases> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="数据库驱动类全名"/> <property name="url" value="数据库URL"/> <property name="username" value="用户名"/> <property name="password" value="密码"/> </dataSource> </environment> </environments> <mappers> <!-- 映射器 --> </mappers> </configuration> ``` 6. 点击OK保存模板。 ### 步骤4:检查项目构建配置(解决编译问题) 根据引用[3],如果项目是聚合工程(父工程),需要在子模块中正确配置资源目录,确保resources下的文件被编译: 1. 检查pom.xml(在需要使用MyBatis的模块中)是否有以下配置: ```xml <build> <resources> <resource> <directory>src/main/resources</directory> <includes> <include>**/*.xml</include> </includes> </resource> </resources> </build> ``` 2. 如果没有,添加上述配置,然后重新构建项目。 ### 步骤5:验证配置 运行程序,确保不再报错`Could not find resource mybatis-config.xml`。 ### 总结 通过以上步骤,我们可以在IntelliJ IDEA中创建mybatis-config.xml配置文件,并确保它被正确编译到类路径中。关键点包括: - 创建resources目录并标记为Resources Root - 使用模板创建配置文件(可选但方便) - 在pom.xml配置资源目录(特别是多模块项目) 如果按照以上步骤操作,应该能够解决配置文件读取不到的问题[^1][^2][^3]。 §§相关问题§§ 1. 如何在IntelliJ IDEA中创建resources目录并标记为资源根目录? 2. 如何在Maven项目中配置资源目录以确保XML文件被正确编译? 3. MyBatis配置文件的基本结构是怎样的? </think> ### 在 IntelliJ IDEA 中创建 mybatis-config.xml 配置文件的完整指南 #### 📁 步骤 1:创建 resources 目录(如不存在) 1. **右击项目结构** ```mermaid graph TD A[项目视图] --> B[右击main目录] B --> C[New > Directory] C --> D[输入目录名 resources] ``` 2. **标记为资源根目录** 右击新建的 `resources` 目录 → `Mark Directory as` → `Resources Root` *目录图标将变为蓝色文件夹* #### ⚙️ 步骤 2:创建配置文件(两种方法) **方法一:手动创建** ```bash 1. 右击resources目录 → New → File 2. 输入完整文件名:mybatis-config.xml ``` **方法二:使用模板创建(推荐)** 1. 右击 `resources` → `New` → `Edit File Templates...` 2. 点击 `+` 新建模板: - **Name**: `mybatis-config` - **Extension**: `xml` 3. 粘贴基础配置模板: ```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> <!-- 添加环境配置--> </configuration> ``` 4. 下次可直接通过 `New > mybatis-config` 创建[^2] #### ️ 关键配置校验 1. **检查文件位置** ```plaintext 正确路径:src/main/resources/mybatis-config.xml ``` 2. **验证编译输出** 构建后检查 `target/classes` 目录下是否存在该文件 *失表示资源未正确编译[^3]* #### 🔧 解决常见问题 ```mermaid graph LR A[Could not find resource mybatis-config.xml] --> B[检查pom.xml] B --> C{是否为聚合项目} C ----> D[添加资源声明] C ----> E[检查路径大小写] ``` 在 `pom.xml` 中添加资源声明: ```xml <build> <resources> <resource> <directory>src/main/resources</directory> <includes> <include>**/*.xml</include> </includes> </resource> </resources> </build> ``` *尤其关键当项目是多模块聚合工程时[^3]* #### ✅ 验证配置 创建测试类验证加载: ```java public class ConfigTest { public static void main(String[] args) { try(InputStream is = Resources.getResourceAsStream("mybatis-config.xml")) { System.out.println("配置文件加载成功!"); } catch (IOException e) { e.printStackTrace(); } } } ``` ---
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值