一、运行原理
1.运行过程中涉及到的类
1.1 Resources MyBatis中IO流的工具类
1.1加载配置文件
1.2 SqISessionFactoryBuilder()构建器
1.2.1作用:创建SqlSessionFactory接口的实现类
1.3 XMLConfigBuilder MyBatis 全局配置文件内容构建器类
1.3.1作用负责读取流内容并转换为JAVA代码.
1.4Configuration封装了全局配置文件所有配置信息.
1.4.1全局配置文件内容存放在Configuration中
1.5 DefaultSqISessionFactory是SqlSessionFactory接口的实现类
1.6 Transaction事务类
16.1每一个SqISession会带有- -个Transaction 对象.
1.7 TransactionFactory事务工厂
1.7.1负责生产Transaction
1.8 Executor MyBatis 执行器
1.8.1作用:负责执行SQL命令
1.8.2相当于JDBC中statement对象(或PreparedStatement 或CallableStatement)
1.8.3默认的执行器SimpleExcutor
1.8.4批量操作BatchExcutor
1.8.5通过openSession(参数控制)
1.9 DefaultSqISession是SqISession接口的实现类
1.10 ExceptionFactory MyBatis中异常工厂
二、流程图
三、 文字解释
在 MyBatis 运行开始时需要先通过 Resources 加载全局配置文件.下面需要实例化 SqlSessionFactoryBuilder 构建器.帮助 SqlSessionFactory 接口实现类 DefaultSqlSessionFactory.
在实例化 DefaultSqlSessionFactory 之前需要先创建 XmlConfigBuilder解析全局配置文件流,并把解析结果存放在 Configuration 中.之后把Configuratin 传递给 DefaultSqlSessionFactory.到此 SqlSessionFactory 工厂创建成功.
由 SqlSessionFactory 工厂创建 SqlSession(接口).
每次创建 SqlSession 时,都需要由 TransactionFactory 创建 Transaction对象,同时还需要创建 SqlSession 的执行器 Excutor,最后实例化defaultSqlSession,传递给 SqlSession 接口.
根据项目需求使用 SqlSession 接口中的 API 完成具体的事务操作.如果事务执行失败,需要进行 rollback 回滚事务.
如果事务执行成功提交给数据库.
关闭 SqlSession到此就是 MyBatis 的运行原理.(面试官说的.)
浙公网安备 33010602011771号