Mybatis框架执行过程
MyBatis运行原理
1.1 运行过程中涉及到的类或接口
1.1.1 Resources(C)
用于加载MyBatis核心配置文件
1.1.2 XMLConfigBuilder(C)
用于解析xml文件(核心配置文件)
1.1.3 Configuration(C)
用于存放xml文件解析后的结果
1.1.4 DefaultSqlSessionFactory(C)
是SqlSessionFactory(I)的实现类, 创建时需要使用Configuration对象
1.1.5 SqlSession(I)
是MyBatis操作的核心
1.1.6 DefaultSqlSession(C)
是SqlSession接口的实现类
1.1.7 TransactionFactory(I)
用于生产Transaction对象
1.1.8 Transaction(I)
用于表示操作数据库的事务对象
1.1.9 Executor(I)
是MyBatis的核心执行器, 类似于jdbc中的Statement, 常用的实现类是SimpleExecutor
1.2 文字描述
当MyBatis运行开始时, 先要通过Resources加载核心配置文件, 之后使用XMLConfigBuilder对配置文件进行解析, 将解析结果封装为Configuration对象, 接着, 使用Configuration对象构建一个DefaultSqlSessionFactory对象, 至此, SqlSession工厂构建完成.
接下来, 通过工厂对象调用openSession方法创建SqlSession对象. 在这个过程中, 需要通过TransactionFactory生成Transaction对象, 并且, 还需要创建核心执行器Executor对象, 之后, 通过这些对象来创建DefaultSqlSession对象, 至此, SqlSession对象创建成功.
之后, 通过SqlSession对象执行相应的操作, 如果执行成功, 调用commit方法提交事务; 如果失败, 调用rollback方法事务回滚. 最后, 调用close方法关闭session资源. 以上, 就是MyBatis的运行原理.