1547 字
约 5 分钟
14
第04章 核心配置文件
无标签

第04章 核心配置文件

深入学习 MyBatis 核心配置文件的各项配置
学习进度:16% 代码演示按钮 💻 查看完整代码 - 在线IDE体验

🎯 学习目标

📚

理解核心概念

掌握本章的核心概念和基本原理
🔧

掌握实践技能

学会相关的配置方法和实践技巧
💡

了解应用场景

明确在实际项目中的应用场景和最佳实践

📋 MyBatis 配置文件概述

MyBatis 的核心配置文件(通常命名为 mybatis-config.xml)是整个框架的控制中心,它定义了数据库连接、事务管理、映射器注册等关键信息。

配置文件的基本结构

<?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/>           <!-- 属性配置 -->
  <settings/>             <!-- 全局设置 -->
  <typeAliases/>          <!-- 类型别名 -->
  <typeHandlers/>         <!-- 类型处理器 -->
  <objectFactory/>        <!-- 对象工厂 -->
  <plugins/>              <!-- 插件 -->
  <environments/>          <!-- 环境配置 -->
  <databaseIdProvider/>   <!-- 数据库厂商标识 -->
  <mappers/>              <!-- 映射器 -->
</configuration>

⚠️ 注意:配置元素的顺序必须严格按照上述顺序排列,否则会导致解析错误。

🔧 核心配置元素详解

1. properties(属性配置)

用于定义配置属性,可以在配置文件的其他地方引用这些属性。

<!-- 基本属性配置 -->
<properties>
  <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
  <property name="url" value="jdbc:mysql://localhost:3306/mybatis_demo"/>
</properties>

<!-- 引用外部属性文件 -->
<properties resource="db.properties">
  <property name="username" value="root"/>
  <property name="password" value="123456"/>
</properties>

2. settings(全局设置)

这是 MyBatis 中极为重要的调整设置,它们会改变 MyBatis 的运行时行为。

设置名 描述 有效值 默认值
cacheEnabled 全局性地开启或关闭所有映射器配置文件中已配置的任何缓存 true false
lazyLoadingEnabled 延迟加载的全局开关 true false
mapUnderscoreToCamelCase 是否开启驼峰命名自动映射 true false
logImpl 指定 MyBatis 所用日志的具体实现 SLF4J LOG4J
<settings>
  <setting name="cacheEnabled" value="true"/>
  <setting name="lazyLoadingEnabled" value="true"/>
  <setting name="mapUnderscoreToCamelCase" value="true"/>
  <setting name="logImpl" value="LOG4J"/>
  <setting name="defaultExecutorType" value="REUSE"/>
</settings>

3. typeAliases(类型别名)

类型别名可为 Java 类型设置一个缩写名字,降低冗余的全限定类名书写。

<typeAliases>
  <!-- 单个别名定义 -->
  <typeAlias alias="User" type="com.example.model.User"/>
  
  <!-- 包扫描方式 -->
  <package name="com.example.model"/>
</typeAliases>

4. environments(环境配置)

MyBatis 可以配置成适应多种环境,例如开发、测试和生产环境。

<environments default="development">
  <!-- 开发环境 -->
  <environment id="development">
    <transactionManager type="JDBC"/>
    <dataSource type="POOLED">
      <property name="driver" value="${driver}"/>
      <property name="url" value="${url}"/>
      <property name="username" value="${username}"/>
      <property name="password" value="${password}"/>
    </dataSource>
  </environment>
  
  <!-- 生产环境 -->
  <environment id="production">
    <transactionManager type="MANAGED"/>
    <dataSource type="JNDI">
      <property name="data_source" value="java:comp/env/jdbc/mybatis"/>
    </dataSource>
  </environment>
</environments>

5. mappers(映射器)

告诉 MyBatis 到哪里去找映射文件。

<mappers>
  <!-- 使用相对于类路径的资源引用 -->
  <mapper resource="com/example/mapper/UserMapper.xml"/>
  
  <!-- 使用完全限定资源定位符(URL) -->
  <mapper url="file:///var/mappers/UserMapper.xml"/>
  
  <!-- 使用映射器接口实现类的完全限定类名 -->
  <mapper class="com.example.mapper.UserMapper"/>
  
  <!-- 将包内的映射器接口实现全部注册为映射器 -->
  <package name="com.example.mapper"/>
</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 resource="db.properties"/>
  
  <settings>
    <setting name="mapUnderscoreToCamelCase" value="true"/>
    <setting name="logImpl" value="STDOUT_LOGGING"/>
  </settings>
  
  <typeAliases>
    <package name="com.example.model"/>
  </typeAliases>
  
  <environments default="development">
    <environment id="development">
      <transactionManager type="JDBC"/>
      <dataSource type="POOLED">
        <property name="driver" value="${driver}"/>
        <property name="url" value="${url}"/>
        <property name="username" value="${username}"/>
        <property name="password" value="${password}"/>
      </dataSource>
    </environment>
  </environments>
  
  <mappers>
    <package name="com.example.mapper"/>
  </mappers>
</configuration>

高级配置示例

<?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 resource="db.properties"/>
  
  <settings>
    <setting name="cacheEnabled" value="true"/>
    <setting name="lazyLoadingEnabled" value="true"/>
    <setting name="aggressiveLazyLoading" value="false"/>
    <setting name="mapUnderscoreToCamelCase" value="true"/>
    <setting name="logImpl" value="LOG4J"/>
    <setting name="defaultExecutorType" value="REUSE"/>
    <setting name="defaultStatementTimeout" value="25"/>
  </settings>
  
  <typeAliases>
    <typeAlias alias="User" type="com.example.model.User"/>
    <typeAlias alias="Order" type="com.example.model.Order"/>
  </typeAliases>
  
  <plugins>
    <plugin interceptor="com.github.pagehelper.PageInterceptor">
      <property name="helperDialect" value="mysql"/>
      <property name="reasonable" value="true"/>
    </plugin>
  </plugins>
  
  <environments default="development">
    <environment id="development">
      <transactionManager type="JDBC"/>
      <dataSource type="POOLED">
        <property name="driver" value="${driver}"/>
        <property name="url" value="${url}"/>
        <property name="username" value="${username}"/>
        <property name="password" value="${password}"/>
        <property name="poolMaximumActiveConnections" value="20"/>
        <property name="poolMaximumIdleConnections" value="5"/>
      </dataSource>
    </environment>
  </environments>
  
  <mappers>
    <package name="com.example.mapper"/>
  </mappers>
</configuration>

💡 配置最佳实践

  1. 属性外部化将数据库连接信息等敏感配置放在外部属性文件中,便于不同环境的配置管理。
  1. 合理使用缓存根据业务需求合理配置一级缓存和二级缓存,提高查询性能。
  1. 日志配置在开发环境启用详细日志,生产环境使用适当的日志级别。
  1. 连接池优化根据应用负载合理配置数据库连接池参数。

🔍 常见问题与解决方案

1. 配置文件解析错误

问题:配置元素顺序错误导致解析失败解决:严格按照 DTD 定义的顺序排列配置元素

2. 属性引用失败

问题:${property} 无法正确解析解决:确保属性在 properties 元素中正确定义

3. 映射器注册失败

问题:找不到映射器接口或 XML 文件解决:检查包路径和文件路径是否正确

🎯 实践练习

练习任务

  1. 创建一个支持开发和生产两种环境的配置文件
  2. 配置数据库连接池参数
  3. 启用驼峰命名自动映射
  4. 配置日志输出
  5. 注册映射器

💡 本章小结

本章我们深入学习了MyBatis核心配置文件的各个组成部分,包括properties属性配置、settings全局设置、typeAliases类型别名、environments环境配置和mappers映射器注册。掌握这些配置要素是使用MyBatis的基础,合理的配置能够显著提升应用的性能和可维护性。下一章预告:我们将学习MyBatis的SQL映射文件,包括如何编写SQL语句、参数映射、结果映射等核心内容。

下一章节 🎉

恭喜完成本章学习!

你已经掌握了 核心配置文件 的核心知识
第05章

SQL映射文件详解

学习MyBatis的SQL映射文件,掌握SQL语句编写、参数映射、结果映射等核心技能
⏱️ 预计 45 分钟📊 中等难度开始学习 → ← 第03章 📚 课程目录 第05章 →

第04章 核心配置文件
https://clxhxhhr.top/posts/3057/
作者
clxstart
发布于
2026-09-24
许可协议
CC BY-NC-SA 4.0
评论
0 条
还没有评论,先写一条吧。