Skip to content

手写MyBatis

整体流程

整个mybatis的功能,就是代理 mapper 然后执行SQL,返回执行结果。

  1. 解析mybatis配置
    • 解析数据源 (Configuration 的 environment)
    • 解析mapper文件配置 (路径扫描)
  2. 解析mapper文件
    • 注册mapper到mapperRegistry。(包含mapper的代理类工厂,可以获取代理过的mapper)
    • 生成mapper方法对应的mapperStatement。(Configuration 的 mappedStatements)
    • 解析mapper方法的标签和SQL,生成BoundSql。
  3. SQL执行器
    • 预编译SQL
    • SQL参数化
    • 执行SQL
    • 处理结果集
  4. 数据源
    • 支持多种数据源
    • 数据源池化

模块

映射器-mapper

数据源

SQL执行器

xml解析

参考链接

第1章:开篇介绍,我要带你撸 Mybatis 啦!