9.2 深入MyBatis的配置文件 9.2.1 MyBatis的配置文件结构
9.2 深入MyBatis的配置文件
MyBatis
的持久化操作离不开SqlSessionFactory
对象,这个对象是整个数据库映射关系经过编译后的内存镜像,该对象由SqlSessionFactoryBuilder
加载MyBatis
的配置文件产生。SqlSessionFactory
对象的openSession()
方法可以打开Sqlsession
对象。
代码回顾
1 | // 读取mybatis-config.xml文件 |
上述代码的功能是根据配置文件mybatis-config.xml
,创建SqlSessionFactory
对象,然后产生Sqlsession
,执行SQL
语句。
MyBatis的初始化
而MyBatis
的初始化就发生在第4句:
1 | SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is); |
MyBatis初始化基本过程
SqlSessionFactoryBuilder
根据传入的输入流生成Configuration
对象,然后根据Configuration
对象创建默认的SqlSessionFactory
实例。
初始化的基本过程如下图所示:
MyBatis
初始化要经过以下几步:
- 调用
SqlSessionFactoryBuilder
对象的build(inputstream)
方法。 SqlSessionFactoryBuilder
会根据输入流inputstream
等信息创建XMLConfigBuilder
对象。SqlSessionFactoryBuilder
调用XMLConfigBuilder
对象的parse()
方法。XMLConfigBuilder
对象解析XML
配置文件返回Configuration
对象。SqlSessionFactoryBuilder
根据Configuration
对象创建一个DefaultSessionFactory
对象。SqlSessionFactoryBuilder
返回DefaultSessionFactory
对象给客户端,供客户端使用。
由此可见,SqlsessionFactory
是根据MyBatis
的配置文件mybatis-config.xml
创建的
9.2.1 MyBatis的配置文件结构
MyBatis
的配置文件包含了影响MyBatis
行为的信息。 文档的结构如下:
- 顶层
configuration
配置 properties
属性settings
设置typeAliases
类型命名typeHandlers
类型处理器objectFactory
对象工厂plugins
插件environments
环境environment
环境变量transactionManager
事务管理器dataSource
数据源databaseIdProvider
数据库厂商标识mappers
映射器