• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

奋斗的软件工程师

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

深入解析 MyBatis 核心配置文件

深入解析 MyBatis 核心配置文件

MyBatis 是一个优秀的持久层框架,它通过 XML 配置文件来管理数据库连接、SQL 映射、事务等核心功能。本文将详细解析一个典型的 MyBatis 核心配置文件,逐个解释其中的配置项,帮助大家更好地理解 MyBatis 的核心配置。


1. XML 声明与 DTD 定义

<?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">
  • <?xml version="1.0" encoding="UTF-8" ?>: 声明这是一个 XML 文件,版本为 1.0,编码为 UTF-8。
  • <!DOCTYPE configuration>: 定义文档类型,指定 MyBatis 配置文件的 DTD(文档类型定义)。
    • -//mybatis.org//DTD Config 3.0//EN: 表示这是一个 MyBatis 3.0 的配置文件。
    • http://mybatis.org/dtd/mybatis-3-config.dtd: 指定 DTD 文件的 URL,用于验证配置文件的结构。

2. <configuration> 根元素

<configuration>
    <!-- 配置内容 -->
</configuration>
  • <configuration>: MyBatis 配置文件的根元素,所有配置项都放在这个标签内。

3. 加载外部配置文件

<properties resource="db.properties"></properties>
  • <properties>: 用于加载外部的属性文件。
    • resource="db.properties": 指定外部属性文件的路径,这里是 db.properties,通常用于存储数据库连接信息(如驱动、URL、用户名、密码等)。
  • 作用: 将数据库连接信息从配置文件中分离出来,便于管理和维护。

4. 全局设置

<settings>
    <setting name="mapUnderscoreToCamelCase" value="true"/>
</settings>
  • <settings>: 配置 MyBatis 的全局行为。
    • <setting name="mapUnderscoreToCamelCase" value="true"/>: 开启下划线命名到驼峰命名的自动映射。
      • mapUnderscoreToCamelCase: 如果数据库字段名是下划线命名(如 user_name),MyBatis 会自动将其映射为 Java 对象的驼峰命名属性(如 userName)。
      • value="true": 表示启用该功能。
  • 作用: 简化数据库字段与 Java 对象属性之间的映射。

5. 类型别名

<typeAliases>
    <package name="com.ithero.pojo"/>
</typeAliases>
  • <typeAliases>: 定义类型别名,简化 SQL 映射文件中的类型引用。
    • <package name="com.ithero.pojo"/>: 指定一个包名,MyBatis 会自动扫描该包下的所有类,并为每个类生成一个默认的别名。
      • 例如,com.ithero.pojo.User 类的别名是 User。
  • 作用: 减少 SQL 映射文件中的冗长类名,提高可读性。

6. 环境配置

<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>
  • <environments>: 配置 MyBatis 的环境(如开发环境、测试环境、生产环境)。
    • default="development": 指定默认的环境是 development。
  • <environment>: 定义一个具体的环境。
    • id="development": 环境的唯一标识符,这里是 development。
    • <transactionManager type="JDBC"/>: 配置事务管理器。
      • type="JDBC": 使用 JDBC 的事务管理方式,直接依赖数据库的事务管理。
    • <dataSource type="POOLED">: 配置数据源。
      • type="POOLED": 使用 MyBatis 提供的连接池(PooledDataSource)。
      • <property>: 配置数据源的属性。
        • driver: 数据库驱动类名,值从 db.properties 中读取。
        • url: 数据库连接 URL,值从 db.properties 中读取。
        • username: 数据库用户名,值从 db.properties 中读取。
        • password: 数据库密码,值从 db.properties 中读取。
  • 作用: 配置数据库连接信息和事务管理方式。

7. 映射器配置

<mappers>
    <!--<mapper resource="org/mybatis/example/BlogMapper.xml"/>-->
    <package name="com.ithero.dao"/>
</mappers>
  • <mappers>: 配置 SQL 映射文件或接口。
    • <package name="com.ithero.dao"/>: 指定一个包名,MyBatis 会自动扫描该包下的所有映射文件或接口。
      • 例如,com.ithero.dao.UserMapper.xml 或 com.ithero.dao.UserMapper 接口会被自动加载。
    • <mapper resource="org/mybatis/example/BlogMapper.xml"/>: (注释掉的配置)用于加载单个 SQL 映射文件。
  • 作用: 告诉 MyBatis 去哪里查找 SQL 映射文件或接口。

总结

通过上述配置,这个 MyBatis 核心配置文件完成了以下功能:

  1. 加载外部属性文件:通过 db.properties 文件管理数据库连接信息。
  2. 全局设置:开启下划线到驼峰命名的自动映射。
  3. 类型别名:为 com.ithero.pojo 包下的类生成别名。
  4. 环境配置:配置开发环境的数据库连接和事务管理。
  5. 映射器配置:扫描 com.ithero.dao 包下的 SQL 映射文件或接口。

posted on 2024-12-10 23:01  周政然  阅读(150)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3