Mybatis的XML文件怎么配置 Mybatis映射文件标签详解

MyBatis XML配置分为mybatis-config.xml(须严格按properties→settings→typeAliases→environments→mappers顺序)和Mapper XML(以namespace绑定接口,含select/insert/update/delete/resultMap等核心标签)。

MyBatis 的 XML 配置分两类:全局配置文件 mybatis-config.xml 和 SQL 映射文件(如 UserMapper.xml)。前者管连接、缓存、别名等基础设置;后者专注 SQL 编写与结果映射,两者配合才能让 DAO 接口正常工作。

mybatis-config.xml 必须遵守的结构顺序

这个文件是 MyBatis 启动时加载的根配置,所有标签必须严格按以下顺序书写,否则会解析失败:

  • properties:外部属性引入(如数据库配置),支持 resource(类路径)或 url(绝对路径),也支持内联
  • settings:全局开关控制,比如 lazyLoadingEnabled="true" 开启延迟加载,cacheEnabled="true" 启用二级缓存
  • typeAliases:简化实体类引用,可用 ,更常用的是 批量注册
  • environments:定义数据源环境,default="dev" 指定默认激活环境,每个 内需包含
  • mappers:注册映射文件,支持 (要求 XML 与接口同包同名)

Mapper XML 文件的核心标签

每个映射文件以 开头,namespace 必须和对应接口全限定名一致,这是方法绑定的基础。

  • :执行查询,id 对应接口方法名,resultType 用于字段名与属性名完全匹配的简单映射;若不一致或需嵌套对象,改用 resultMap 引用外部定义
  • :插入语句,设 useGeneratedKeys="true" keyProperty="id" 可自动回填数据库自增主键到参数对象
  • :结构类似,只需写 SQL 和匹配 id,无返回值要求
  • :定义可复用的 SQL 片段,用 引入,避免重复写 WHERE 或字段列表
  • :复杂结果映射核心,支持 (主键)、(普通字段)、(一对一)、(一对多)

常见易错点和实用技巧

实际配置中几个关键细节容易被忽略,但直接影响运行效果:

  • XML 文件开头的 DTD 声明不能省略或写错,例如:
  • properties 中定义的变量,可在 environments 里用 ${username} 引用;若内外同名,外部文件优先
  • 使用 批量注册 mapper 时,确保 XML 文件放在 classpath 对应路径下,且文件名与接口名一致(如 UserMapper.javaUserMapper.xml
  • 动态 SQL 标签()只能出现在 / 等语句内部,不能直接放在

一个最小可用的 UserMapper.xml 示例

结合实际场景更易理解: