配置文件xml和properties

XML 复制代码
driver=com.microsoft.sqlserver.jdbc.SQLServerDriver

url =jdbc:sqlserver://localhost:1433;DatabaseName=chenyuan;encrypt=true;trustServerCertificate=true
user = sa
password = 123456

要让你的 mybatis-config.xml 配置文件成功读取到 mybatis.properties 文件中的数据库连接信息,你只需要在 <configuration> 标签内部的最上方,添加一个 <properties> 标签来引入该属性文件。

修改后的 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>
    <properties resource="mybatis.properties"/>

    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="${driver}"/>
                <property name="url" value="${url}"/>
                <property name="username" value="${username}"/>
                <property name="password" value="${password}"/>
            </dataSource>
        </environment>
    </environments>
    
    <mappers>
        <mapper resource="org/mybatis/example/BlogMapper.xml"/>
    </mappers>
</configuration>

💡 两个需要注意的细节(避坑指南):

先把 mybatis-config.xml 里的路径改成 com/counter/dao/Usermapper.xml 吧,距离成功运行就差这一步了!

复制代码
<build>
    <resources>
        <resource>
            <directory>src/main/java</directory>
            <includes>
                <include>**/*.xml</include>
            </includes>
            <filtering>false</filtering>
        </resource>
    </resources>
</build>
  1. 标签的顺序不能乱 :MyBatis 对 XML 内部标签的顺序有严格要求。<properties> 标签必须 放在 <configuration> 的第一位(在 <environments> 和 <mappers> 的上方),否则项目启动时会报 XML 校验错误。

  2. 文件的存放路径 :代码中的 resource="mybatis.properties" 表示从类路径(ClassPath)根目录下寻找该文件。在标准的 Maven 或 SSM 项目中,你需要把 mybatis.properties 和 mybatis-config.xml 都放在 src/main/resources 目录下。

    是的,你观察得非常敏锐!这里确实还没有绑定。 如果不在这里修改路径,MyBatis 启动时就会去报错找不到 org/mybatis/example/BlogMapper.xml,从而无法加载你的 SQL 语句。

    看一眼你左侧的项目结构,你的 Usermapper.xml 是直接放在 com/counter/dao 这个包路径下的。因此,你必须把 mybatis-config.xml 第 20 行的 <mapper> 标签修改为你项目的真实路径。

    请将第 19-21 行的 <mappers> 标签区域修改为以下内容:

    XML

    复制代码
        <mappers>
            <mapper resource="com/counter/dao/Usermapper.xml"/>
        </mappers>

    💡 顺便提醒一个极易踩坑的"资源导出问题":

    在 Maven 项目中,如果你把 XML 映射文件(如 Usermapper.xml)放在 src/main/java 的主代码包下,而不是放在 src/main/resources 资源目录下,Maven 在编译时默认会忽略掉 java 包底下的 XML 文件。

    这会导致程序运行时报经典的 org.apache.ibatis.binding.BindingException: Invalid bound statement (not found) 错误。

    解决办法(二选一):

  3. 推荐做法 :在右侧 resources 目录下新建一个一模一样的空文件夹目录 com/counter/dao,然后把 Usermapper.xml 挪过去。

  4. 快捷做法 :如果不挪动文件,就必须在你项目的 pom.xml 中加入以下 资源过滤配置,强迫 Maven 去编译 java 文件夹下的 XML 文件:

相关推荐
Mr_Mao14 分钟前
告别选型困难!集 VueUse、ahooks、Mantine 于一身:286 个 Hook 的 ReaUse 来了
前端·javascript·react.js
泡海椒1 小时前
趋势分析报表:jquick-pdf折线图PDF生成实战
java·大数据·运维·服务器·前端·pdf
默_笙1 小时前
🚙 一条腿走路会摔:ES 关键词检索、混合召回与 ReRank 裁判
前端·javascript
YIAN1 小时前
从跨域代理到 WebSocket:梳理前端实时通信的底层逻辑与完整实践
前端·websocket
一曲终散1 小时前
创建 SVG 图标预览页面:从零实现到解决 CORS 问题
前端
静默回滚2 小时前
iPhone照片电脑上打不开:HEIC解码从原理到WASM
前端
dsyyyyy11012 小时前
Vue 3 Watch 监视完全指南
前端·javascript·vue.js
航飞光电市场经理2 小时前
人员定位系统“全栈自研”技术解析:从射频前端到定位引擎的架构拆解
前端·架构
Apifox2 小时前
Apifox 9 月更新|CLI 能力升级、GitLab 私有化部署接入与产品体验优化
前端·后端·测试
deli0072 小时前
随机乱跳为什么能画出完美三角形:混沌游戏分形实验室
前端