Mybatis技术内幕读书笔记(一)

Java应用执行mybatis的流程

  • 1、加载mybatis-config.xml配置文件
  • 2、创建SqlSessionFactory对象
  • 3、通过SqlSessionFactory创建sqlsession对象
  • 4、通过sqlsession执行mapper文件的SQL语句
  • 5、通过sqlsession提交事务
  • 6、最后关闭sqlsession对象

mybatis整体架构

mybatis整体架构图
mybatis整体架构图

基础支撑层

  • 反射模块:提供良好的反射封装、简洁的API供上层使用
  • 类型转换:提供别名机制以及JDBC类型和Java类型之间转换的能力
  • 日志模块:集成第三方日志框架
  • 资源价值模块:提供加载类文件以及其他资源文件的功能
  • 解析器模块:解析配置文件、处理动态SQL语句的占位符
  • 数据源模块:提供与第三方数据源集成的接口
  • 事务管理:对事务操作进行了封装
  • 缓存模块:提供一级缓存和二级缓存
  • binding模块:将用户自定义的mapper接口和映射配置文件关联

核心处理层

  • 配置解析:解析配置文件和mapper文件
  • SQL解析:解析mapper文件定义的SQL节点,转成数据库可执行的SQL语句
  • SQL执行:包括几个重要的组件:Executor负责维护缓存和事务管理操作;StatementHandler处理数据库委托请求;ParameterHandler完成SQL语句的实参绑定。
  • 插件:提供插件接口

接口层

  • SqlSession:暴露应用程序调用的API供上层调用