对于任何框架而言,在使用前都要进行一系列的初始化,MyBatis也不例外。本章将通过以下几点详细介绍MyBatis的初始化过程。
1.MyBatis的初始化做了什么
2. MyBatis基于XML配置文件创建Configuration对象的过程
3. 手动加载XML配置文件创建Configuration对象完成初始化,创建并使用SqlSessionFactory对象
4. 涉及到的设计模式
一、 MyBatis的初始化做了什么
任何框架的初始化,无非是加载自己运行时所需要的配置信息。MyBatis的配置信息,大概包含以下信息,其高层级结构如下:
× configuration 配置
× properties 属性
× settings 设置
×typeAliases 类型命名
×typeHandlers 类型处理器
×objectFactory 对象工厂
×plugins 插件
×environments 环境
×environment 环境变量
×transactionManager 事务管理器
×dataSource 数据源
×映射器
MyBatis的上述配置信息会配置在XML配置文件中,那么,这些信息被加载进入MyBatis内部,MyBatis是怎样维护的呢?
MyBatis采用了一个非常直白和简单的方式---使用org.apache.ibatis.session.Configuration对象作为一个所有配置信息的容器,Configuration对象的组织结构和XML配置文件的组织结构几乎完全一样(当然,Configuration对象的功能并不限于此,它还负责创建一些MyBatis内部使用的对象,如Executor等,这将在后续的文章中讨论)。如下图所示:
MyBatis根据初始化好Configuration信息,这时候用户就可以使用MyBatis进行操作了。
可以这么说,MyBatis初始化的过程,就是创建 Configuration对象的过程。
MyBatis的初始化可以有两种方式:
基于XML配置文件:基于XML配置文件的方式是将MyBatis的所有配置信息放在XML文件中,MyBatis通过加载并XML配置文件,将配置文信息组装成内部的Configuration对象
基于Java API:这种方式不使用XML配置文件,需要MyBatis使用者在Java代码中,手动创建Configuration对象,然后将配置参数set 进入Configuration对象中
(PS: MyBatis具体配置信息有哪些,又分别表示什么意思,不在本文的叙述范围,读者可以参考我的《Java Persistence withMyBatis 3 (中文版)》 的第二章 引导MyBatis中有详细的描述)
接下来我们将通过 基于XML配置文件方式的MyBatis初始化,深入探讨MyBatis是如何通过配置文件构建Configuration对象,并使用它的。
二、MyBatis基于XML配置文件创建Configuration对象的过程
现在就从使用MyBatis的简单例子入手,深入分析一下MyBatis是怎样完成初始化的,都初始化了什么。看以下代码:
有过MyBatis使用经验的读者会知道,上述语句的作用是执行com.foo.bean.BlogMapper.queryAllBlogInfo定义的SQL语句,返回一个List结果集。总的来说,上述代码经历了mybatis初始化 -->创建SqlSession -->执行SQL语句返回结果三个过程。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/tongxinshuyu/article-40254-1.html
发动一场战争
颜值高
螃蟹嘛还不错