核心配置文件详解
2026/1/15大约 2 分钟MyBatis配置文件XML
核心配置文件详解
标签顺序
核心配置文件中标签必须按照固定的顺序:
properties?, settings?, typeAliases?, typeHandlers?, objectFactory?,
objectWrapperFactory?, reflectorFactory?, plugins?, environments?,
databaseIdProvider?, mappers?完整配置示例
<?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文件 -->
<properties resource="jdbc.properties"/>
<!-- 设置 -->
<settings>
<!-- 将_自动映射为驼峰,如user_name -> userName -->
<setting name="mapUnderscoreToCamelCase" value="true"/>
<!-- 开启延迟加载 -->
<setting name="lazyLoadingEnabled" value="true"/>
</settings>
<!-- 类型别名 -->
<typeAliases>
<!-- 单个类型别名 -->
<typeAlias type="com.example.pojo.User" alias="User"/>
<!-- 以包为单位,将包下所有的类型设置默认的类型别名,即类名且不区分大小写 -->
<package name="com.example.pojo"/>
</typeAliases>
<!-- 环境配置 -->
<environments default="development">
<environment id="development">
<!-- 事务管理器 -->
<transactionManager type="JDBC"/>
<!-- 数据源 -->
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driver}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</dataSource>
</environment>
</environments>
<!-- 引入映射文件 -->
<mappers>
<!-- 单个映射文件 -->
<mapper resource="mappers/UserMapper.xml"/>
<!-- 以包为单位引入映射文件 -->
<package name="com.example.mapper"/>
</mappers>
</configuration>properties 标签
引入外部 properties 文件,方便管理数据库连接信息。
jdbc.properties 文件:
jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/mybatis?useSSL=false&serverTimezone=UTC
jdbc.username=root
jdbc.password=123456settings 标签
MyBatis 中极为重要的调整设置,它们会改变 MyBatis 的运行时行为。
| 设置名 | 描述 | 有效值 | 默认值 |
|---|---|---|---|
| mapUnderscoreToCamelCase | 是否开启驼峰命名自动映射 | true/false | false |
| lazyLoadingEnabled | 延迟加载的全局开关 | true/false | false |
| cacheEnabled | 全局性地开启或关闭所有映射器配置文件中已配置的任何缓存 | true/false | true |
typeAliases 标签
类型别名可为 Java 类型设置一个缩写名字。它仅用于 XML 配置,意在降低冗余的全限定类名书写。
方式一:单个类型别名
<typeAliases>
<typeAlias type="com.example.pojo.User" alias="User"/>
</typeAliases>方式二:包扫描
<typeAliases>
<package name="com.example.pojo"/>
</typeAliases>以包为单位,将包下所有的类型设置默认的类型别名,即类名且不区分大小写。
MyBatis内置类型别名
| 别名 | 映射的类型 |
|---|---|
| _int | int |
| _integer | int |
| int | Integer |
| integer | Integer |
| string | String |
| map | Map |
| list | List |
environments 标签
配置多个连接数据库的环境。
default属性:设置默认使用的环境的 idtransactionManager:设置事务管理方式JDBC:使用 JDBC 原生的事务管理方式,事务的提交或回滚需要手动处理MANAGED:被管理,例如 Spring
dataSource:配置数据源POOLED:使用数据库连接池缓存数据库连接UNPOOLED:不使用数据库连接池JNDI:使用上下文中的数据源
mappers 标签
引入映射文件。
方式一:单个映射文件
<mappers>
<mapper resource="mappers/UserMapper.xml"/>
</mappers>方式二:包扫描
<mappers>
<package name="com.example.mapper"/>
</mappers>注意
以包为单位引入映射文件时,需要满足两个条件:
- Mapper 接口所在的包要和映射文件所在的包一致
- Mapper 接口要和映射文件的名字一致
