MyBatis 核心配置文件

一、整体结构概览

MyBatis 的核心配置文件(通常命名为 mybatis-config.xml )是 MyBatis 框架的 “总开关”,用于全局配置 MyBatis 的运行环境、类型别名、插件、数据库连接等。

顶层结构(必须严格按顺序配置)

<configuration>
  <properties/>          <!-- 加载外部属性文件(如数据库连接信息) -->
  <settings/>            <!-- 全局设置(如缓存、日志、映射规则) -->
  <typeAliases/>         <!-- 类型别名(简化类全限定名) -->
  <typeHandlers/>        <!-- 类型处理器(Java 类型与数据库类型转换) -->
  <objectFactory/>       <!-- 对象工厂(创建结果对象的规则) -->
  <plugins/>             <!-- 插件(扩展 MyBatis 功能,如分页) -->
  <environments/>        <!-- 环境配置(多环境支持,如开发、生产) -->
  <databaseIdProvider/>  <!-- 数据库厂商标识(多数据库适配) -->
  <mappers/>             <!-- 映射器(加载 SQL 映射文件或接口) -->
</configuration>

关键规则

  • 标签必须严格按上述顺序配置(MyBatis 强制要求)。
  • 每个标签都是可选的,可根据项目需求灵活使用。

二、各标签详细解析

1. <properties>(属性)
  • 作用:加载外部属性文件(如 db.properties ),实现 配置解耦(避免硬编码数据库连接信息)。
  • 示例
    <properties resource="db.properties"/>

    db.properties 文件内容:

    jdbc.driver=com.mysql.cj.jdbc.Driver
    jdbc.url=jdbc:mysql://localhost:3306/test
    jdbc.username=root
    jdbc.password=123456

  • 优势
    • 可在 <environments> 中直接引用 ${jdbc.url} 等变量。
    • 支持多环境切换(如开发、测试环境用不同的 db.properties )。
2. <settings>(设置)
  • 作用:全局配置 MyBatis 的行为,影响框架的 缓存、日志、延迟加载 等核心功能。
  • 常用配置(按需开启):
    <settings>
      <!-- 开启二级缓存(默认开启) -->
      <setting name="cacheEnabled" value="true"/>
      <!-- 开启延迟加载(处理关联查询) -->
      <setting name="lazyLoadingEnabled" value="true"/>
      <!-- 日志实现(如使用 Log4j2) -->
      <setting name="logImpl" value="LOG4J2"/>
      <!-- 开启驼峰命名映射(如数据库字段 user_name → Java 属性 userName) -->
      <setting name="mapUnderscoreToCamelCase" value="true"/>
    </settings>

    注意
    这些设置会全局影响 MyBatis 的运行,需根据项目需求调整(如 mapUnderscoreToCamelCase 对字段命名不规范的老项目可能不适用)

3. <typeAliases>(类型别名)
  • 作用:为 Java 类定义 简短别名,简化 SQL 映射文件中的类全限定名。
  • 两种配置方式
  • 方式 1:单个类定义别名
    <typeAliases>
      <!-- 为 com.itheima.pojo.User 定义别名为 User -->
      <typeAlias type="com.itheima.pojo.User" alias="User"/>
    </typeAliases>

             方式 2:批量扫描包(推荐)

    <typeAliases>
      <!-- 扫描 com.itheima.pojo 包下的所有类,别名为类名(首字母小写或大写都可) -->
      <package name="com.itheima.pojo"/>
    </typeAliases>

            例如:com.itheima.pojo.User 可直接用 User 作为别名

    • 优势
      减少 SQL 映射文件中类名的冗余(尤其适合类全限定名较长的场景)。
    4.<environments>(环境配置)
      • 作用:配置 多套运行环境(如开发环境、生产环境),支持快速切换。
        <environments default="dev">
          <!-- 开发环境 -->
          <environment id="dev">
            <!-- 事务管理器:JDBC(基于本地事务)或 MANAGED(交给容器管理) -->
            <transactionManager type="JDBC"/>
            <!-- 数据源:UNPOOLED(不使用连接池)、POOLED(使用连接池)、JNDI(容器数据源) -->
            <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>
          <!-- 生产环境 -->
          <environment id="prod">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
              <property name="driver" value="${prod.jdbc.driver}"/>
              <property name="url" value="${prod.jdbc.url}"/>
              <property name="username" value="${prod.jdbc.username}"/>
              <property name="password" value="${prod.jdbc.password}"/>
            </dataSource>
          </environment>
        </environments>

      • 关键配置
        • default="dev":指定默认使用的环境(dev 或 prod )。
        • transactionManager:控制事务提交 / 回滚。
        • dataSource:配置数据库连接池(建议使用 POOLED 提升性能)。
    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值