MyBatis的设计思路
- 创建SqlSessionFactory实例
- 实例化过程中,加载配置文件创建configuration对象
- 通过factory创建SqlSession
- 通过SqlSession获取mapper接口动态代理
- 动态代理回调sqlsession中某查询方法
- SqlSession将查询方法转发给Executor
- Executor基于JDBC访问数据库获取数据
- Executor通过反射将数据转换成POJO并返回给SqlSession
- 将数据返回给调用者
MyBatis三大核心阶段
初始化阶段:
读取XML配置文件和注解中的配置信息,创建解析对象,并完成各个模块的初始化工作。就是把我们的配置文件加载到内存里面去。在sqlSession初始化的时候加载到内存中去的。
代理阶段:
封装iBatis的编程模型,使用mapper接口开发的初始化工作。
数据读写阶段:
通过SqlSession完成SQL的解析,参数的映射,SQL的执行,结果的反射解析过程。