MyBatis核心类对象主要有俩个:
1:对相关配置文件信息进行封装的Configuration对象
2:用来执行数据库操作的Executor对象。
Configuration对象主要有三个作用:





MyBatis解析Mapper.xml配置文件映射成MappedStatement对象,每一个id标签对应一个MappedStatement。

MappedStatement部分源码:


MappedStatement使用BoundSql封装sql语句:



MyBatis进行数据库操作的真正核心,封装了JDBC的statement。
既然StatementHandler负责数据库操作,那么为什么还要封装Executor对象?
因为StatementHandler只是将Executor最主要的功能:增删改查等基本功能,而Executor还有其它作用

封装对参数的处理操作

封装对结果集的处理操作

负责数据库类型和Java之间对应的类型转换

创建SqlSessionFactory时通过XPathParser解析xml配置文件,进而创建Configuration,通过Configuration作为参数创建SqlSessionFactory。




核心实现类:
MyBatis默认使用SimpleExecuter。
Executor的最终还是通过调用Configuration创建的各种Handler实现其功能。
通过SqlSessionFactory创建SqlSession时创建Executor:



我们在创建SqlSessionFactory时通过xml文件解析技术将Mybatis配置文件映射成Configuration对象,将Mapper.xml文件映射成MappedStatement配置文件同时封装进Configuration对象。同时Configuration对象创建StatementHandler等底层操作工具类。
通过SqlSessionFactory创建SqlSession时创建出Executor操作类,Executor通过StatementHandler等对象完成具体的数据库操作和事务,缓存等功能。