手写MyBatis
整体流程
整个mybatis的功能,就是代理 mapper 然后执行SQL,返回执行结果。
- 解析mybatis配置
- 解析数据源 (Configuration 的 environment)
- 解析mapper文件配置 (路径扫描)
- 解析mapper文件
- 注册mapper到mapperRegistry。(包含mapper的代理类工厂,可以获取代理过的mapper)
- 生成mapper方法对应的mapperStatement。(Configuration 的 mappedStatements)
- 解析mapper方法的标签和SQL,生成BoundSql。
- SQL执行器
- 预编译SQL
- SQL参数化
- 执行SQL
- 处理结果集
- 数据源
- 支持多种数据源
- 数据源池化