MyBatis 的常见配置涵盖数据库连接、类型别名、映射器等核心模块,合理配置可显著提升开发效率与系统性能。以下是 MyBatis 的常见配置项及其详细说明:
一、核心配置文件结构
MyBatis 的全局配置文件(通常命名为 mybatis-config.xml)是整个框架的配置中枢,其结构遵循以下顺序:
properties:引入外部属性文件(如数据库连接信息),支持动态替换配置值。
settings:调整 MyBatis 运行时行为(如缓存、日志实现等)。
typeAliases:为 Java 类型设置别名,减少全限定类名的冗余书写。
typeHandlers:处理 Java 类型与数据库类型的转换。
objectFactory:自定义对象创建工厂。
plugins:拦截器配置(如分页插件)。
environments:多环境配置(如开发、测试、生产环境)。
databaseIdProvider:支持多数据库厂商标识。
mappers:加载 SQL 映射文件或接口。
二、关键配置项详解
- 数据库连接配置
在 environments 标签中配置数据库连接信息,支持多环境切换:
xml
transactionManager:事务管理方式,常用 JDBC(默认)或 MANAGED(由容器管理)。
dataSource:数据源类型,可选 UNPOOLED(无连接池)、POOLED(连接池,推荐)或 JNDI(集成容器数据源)。
- 属性配置(properties)
通过外部文件(如 db.properties)管理数据库连接信息,便于维护:
properties
db.properties
driver=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/mybatis?useSSL=false&serverTimezone=UTC
username=root
password=123456
在 mybatis-config.xml 中引入:
xml
- 类型别名(typeAliases)
为 Java 类型设置别名,简化 XML 配置中的全限定类名:
xml
若需自定义别名,可在实体类上使用 @Alias 注解:
java
@Alias("CustomUser")
public class User {
// ...
}
- 映射器配置(mappers)
加载 SQL 映射文件或接口,支持三种方式:
xml
- 设置项(settings)
调整 MyBatis 运行时行为,常用配置如下:
xml
<!-- 启用二级缓存(默认关闭) -->
<setting name="cacheEnabled" value="true" />
<!-- 指定日志实现(如 SLF4J、Log4j) -->
<setting name="logImpl" value="SLF4J" />
三、配置优先级与注意事项
属性优先级:若同一属性在多个位置配置,优先级为:方法参数 > 外部属性文件 > 内部 properties 标签。
环境切换:通过修改 environments 的 default 属性切换环境,但每个 SqlSessionFactory 实例只能选择一种环境。
连接池配置:使用 POOLED 数据源时,可通过额外属性调整连接池行为(如 poolMaximumActiveConnections)。
日志配置:MyBatis 默认使用无操作日志实现,需通过 logImpl 指定实际日志框架(如 Log4j、Logback)。