MyBatis核心配置文件详解:从层级关系到实战配置
MyBatis 是一款优秀的持久层框架,其核心配置文件 mybatis-config.xml
是连接应用与数据库的“中枢神经”。本文将解析每个配置模块的作用、层级关系及实际使用场景,帮助开发者快速掌握 MyBatis 的配置精髓。
一、配置文件层级总览
MyBatis 配置文件以 <configuration>
为根节点,内部按严格顺序包含以下子元素(若存在):
<configuration>
<properties> → <settings> → <typeAliases> → <typeHandlers> →
<objectFactory> → <plugins> → <environments> → <databaseIdProvider> → <mappers>
</configuration>
📌 注意:配置文件中的元素必须按照上述顺序声明,否则会导致解析错误!
二、核心元素详解
1. <properties>
:外部属性注入
- 作用:加载外部属性文件(如
jdbc.properties
)或直接定义属性,用于动态替换配置中的占位符(如${driver}
)。 - 示例:
<properties resource="config/jdbc.properties"> <property name="env" value="development"/> </properties>
2. <settings>
:全局行为控制
- 作用:配置 MyBatis 的运行时行为,例如缓存、延迟加载、日志等。
- 关键配置项:
mapUnderscoreToCamelCase
:自动将下划线字段映射为驼峰属性(默认false
)。lazyLoadingEnabled
:延迟加载关联对象(默认false
)。cacheEnabled
:启用二级缓存(默认true
)。
- 示例:
<settings> <setting name="mapUnderscoreToCamelCase" value="true"/> <setting name="lazyLoadingEnabled" value="true"/> </settings>
3. <typeAliases>
:类型别名简化
- 作用:为 Java 类设置简短别名,避免在映射文件中写冗长的全限定类名。
- 用法:
<typeAliases> <!-- 单个类定义别名 --> <typeAlias type="com.example.model.User" alias="User"/> <!