mybatis-config.xml主配置文件怎么配置

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.Driver
    jdbc.url=jdbc:mysql://localhost:3306/mydb?useSSL=false&characterEncoding=utf8&serverTimezone=Asia/Shanghai
    jdbc.username=root
    jdbc.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 属于按需增强项,初期可暂不配置。