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映射器