mybatis架构图
一、mybatis整体架构设计分为三层:API接口层、数据处理层、基础支持层。
- API接口层:提供外部使用接口的API,通过提供的API操作数据库。接口层收到调用参数后就会将这些参数作为入参数调用数据处理层来完成具体的数据处理。
- 数据处理层:接收到接口层的参数,具体负责对SQL的查找,解析,执行和执行结果的映射处理,完成对数据库的操作。
- 基础支持层:负责最基础且公用的功能支持,包括数据库连接管理、事务管理、配置加载和缓存处理。这些功能抽取出来作为基础功能,为上层的数据处理层提供最基础的支撑。
二、mybatis整个调用执行过程:
- 加载配置并初始化:即mybatis主配置文件,mapper配置文件及注解配置。其中将SQL配置的信息加载为一个个MapperStatement对象(传入参数映射配置、执行的SQL语句、结果映射配置)。
- 接收调用请求:接收到传入的参数和需要执行的SQL的ID,将请求传递给下层的数据处理层进行处理。
- 处理操作请求:执行器Executor处理接收到接口层传递的SQL的ID和传入参数,根据ID查找对应的MapperStatement,解析MapperStatement对象,得到需要执行的SQL语句并注入传入的参数。获取到数据库连接,将最终的SQL语句到数据库执行,并得到结果。根据MapperStatement对象中的结果映射配置对得到的结果进行转换处理,得到最终的结果。最后释放资源并返回结果到上层。