MyBatis主配置文件mybatis-config.xml必须以标准XML声明和DTD约束开头,根元素为;需通过外置数据库参数,指定默认环境并配置事务与数据源,正确注册映射器。
MyBatis 的主配置文件 mybatis-config.xml 是整个框架运行的起点,它定义了数据源、事务、类型别名、
映射器等核心行为。配置不复杂但容易忽略细节,关键是要结构正确、属性引用清晰、环境匹配真实场景。
必须的文档声明和根节点
开头必须包含标准的 XML 声明与 DTD 约束,否则 MyBatis 无法解析:
- 根元素只能是
,所有其他配置都必须嵌套在它内部
数据库连接参数建议外置到 properties 文件
把 driver、url、username、password 等敏感或易变配置抽离到 src/main/resources/db.properties 中更安全也更灵活:
- db.properties 示例:
jdbc.driver=com.mysql.cj.jdbc.Driverjdbc.url=jdbc:mysql://localhost:3306/mydb?useSSL=false&characterEncoding=utf8&serverTimezone=Asia/Shanghaijdbc.username=rootjdbc.password=123456 - 在 mybatis-config.xml 中引入:
- 后续直接用
${jdbc.url}这类占位符引用,优先级高于 XML 内直接定义的同名值
environments 环境配置要明确 default 和 id
一个项目常有 dev/test/prod 多套环境, 指定默认激活的环境块:
- 每个
必须包含 -
是最常用的数据源类型,支持连接池;也可选 UNPOOLED(每次新建连接)或 JNDI(容器托管) - 里面的
等,就是前面 properties 加载进来的值
mappers 映射器注册不能遗漏
Mapper 接口和 XML 文件(或注解 SQL)必须被 MyBatis 扫描到,否则查询会报 “Invalid bound statement”:
- 推荐用包扫描方式(简洁不易漏):
- 如果用 XML 显式注册,路径必须准确:
(路径基于 classpath) - 确保 XML 文件名与 Mapper 接口名一致,且 namespace 等于接口全限定名
基本上就这些。只要 DTD 正确、properties 加载到位、environments 有 default 且能连通、mappers 能扫到,MyBatis 就能正常启动。其余如 typeAliases、settings、plugins 属于按需增强项,初期可暂不配置。








