### MyBatis 3.2.2 用户指南中文版知识点概览 #### 一、简介与定义 **MyBatis** 是一款优秀的持久层框架,它支持普通的 SQL 查询、存储过程以及高级映射功能。通过使用简单的 XML 或注释来进行配置和原始映射,能够将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java 对象)映射为数据库中的记录。MyBatis 消除了几乎所有的 JDBC 代码和参数的手动设置以及结果集的检索工作,简化了开发过程。 #### 二、入门指南 **1. SqlSessionFactory 的构建** - **SqlSessionFactory**: 每个 MyBatis 应用的核心都是一个 SqlSessionFactory 实例。该实例可通过 SqlSessionFactoryBuilder 对象来创建。 - **SqlSessionFactoryBuilder**: 可以从 XML 配置文件或从 Configuration 类的实例中构建 SqlSessionFactory。 **2. 从 XML 文件构建 SqlSessionFactory** - **资源加载**: 建议使用类路径下的资源文件进行配置。可以使用任意 Reader 实例,如通过文本文件路径或 URL 形式的文件路径 `file://` 创建。 - **工具类**: MyBatis 包含了一些工具类(如 Resources),这些类包含的方法可以更简便地从类路径或其他位置加载资源文件。 **3. 不使用 XML 构建 SqlSessionFactory** - **Configuration 类**: 可以使用 Configuration 类来手动配置 SqlSessionFactory,这种方式更加灵活,适用于复杂的环境配置需求。 **4. 从 SqlSessionFactory 获取 SqlSession** - **SqlSession**: 用于执行 SQL 语句和管理事务的对象。通过 SqlSessionFactory.openSession() 方法获取。 **5. 探究已映射的 SQL 语句** - **映射文件**: 映射 SQL 语句的 XML 文件,包含了 SQL 语句及其对应的参数类型和返回类型等信息。 - **动态 SQL**: 支持条件语句(如 if、choose)、循环语句(如 foreach)等动态 SQL 功能,增强了 SQL 的灵活性和复用性。 #### 三、配置与管理 **1. XML 映射配置文件** - **配置项**: 包括 properties、settings、typeAliases、typeHandlers、objectFactory、plugins、environments、databaseIdProvider 和 mappers 等配置项。 **2. properties** - **属性**: 可以在配置文件中设置全局属性,例如数据库连接信息等。 - **外部化**: 属性也可以从外部文件加载。 **3. settings** - **设置**: 设置 MyBatis 行为的选项,如 lazyLoadingEnabled、multipleResultSetsEnabled 等。 - **自定义**: 允许自定义某些行为。 **4. typeAliases** - **类型别名**: 用于减少全限定类名的冗余,简化映射文件中的配置。 **5. typeHandlers** - **类型处理器**: 处理 Java 类型和 SQL 类型之间的转换。 - **自定义**: 支持自定义类型处理器。 **6. Handling Enums** - **枚举处理**: 提供对 Java 枚举的支持,允许在 SQL 语句中直接使用枚举值。 **7. objectFactory** - **对象工厂**: 负责创建 Java 实例。 **8. plugins** - **插件**: 扩展 MyBatis 功能的方式之一。 - **自定义**: 支持自定义插件以实现特殊需求。 **9. environments** - **环境配置**: 配置不同的数据库环境,例如 development 和 production。 **10. databaseIdProvider** - **数据库 ID 提供器**: 用于识别不同数据库供应商,并提供特定于数据库的行为。 **11. mappers** - **映射器**: 定义 SQL 映射的位置,可以通过 XML 文件或注解的方式指定。 #### 四、SQL 映射与执行 **1. select** - **查询**: 定义 SQL 查询语句,支持复杂的查询操作。 - **参数传递**: 支持多种方式传递参数,包括 @Param 注解等。 **2. insert, update and delete** - **增删改**: 定义 SQL 插入、更新和删除语句。 - **批量操作**: 支持批量操作,如批量插入数据。 **3. sql** - **SQL 片段**: 可重用的 SQL 片段,可以被多个映射语句共享。 **4. Parameters** - **参数处理**: 支持多种参数类型和处理方式。 - **动态参数**: 支持基于表达式或变量的动态参数传递。 **5. ResultMaps** - **结果映射**: 定义 SQL 结果到 Java 对象的映射规则。 - **复杂映射**: 支持一对多、多对多等复杂关系映射。 **6. Auto-mapping** - **自动映射**: 在简单情况下自动将结果集映射到 Java 对象,无需显式定义映射规则。 **7. 缓存** - **一级缓存**: SqlSession 级别的缓存,自动开启。 - **二级缓存**: 应用程序级别的缓存,需手动开启并配置。 **8. 动态 SQL** - **条件语句**: 支持 if、choose、when、otherwise 等条件语句。 - **循环语句**: 支持 foreach 循环处理列表等数据结构。 **9. Multi-db vendor support** - **多数据库支持**: 支持多种数据库供应商,如 MySQL、Oracle 等。 - **特定行为**: 可以根据不同的数据库供应商定制行为。 **10. Pluggable Scripting Languages For Dynamic SQL** - **脚本语言**: 支持多种脚本语言用于编写动态 SQL 语句,增加灵活性。 **11. Java API** - **API 使用**: 提供了丰富的 Java API 以支持更高级的操作。 - **SqlSessions**: SqlSession 的管理,包括开启、提交和关闭等操作。 - **StatementBuilders**: 包括 SelectBuilder 和 SqlBuilder,用于构建 SQL 语句。 - **Logging**: 日志配置和管理,支持多种日志框架。 以上是对 MyBatis 3.2.2 用户指南中文版的关键知识点的总结和解析,希望能够帮助开发者更好地理解和使用 MyBatis 这一强大的持久层框架。
- 粉丝: 4
- 资源: 8
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助