Mybatis架构图
2020-04-26 本文已影响0人
RainySpring
直接上图(简约版),从1到9每一步都值得大家去思考。
image.png大致流程说下:
- 解析配置文件阶段
*builder()
*XmlConfigBuilder
*parse()底层使用Xnode去解析每个配置文件的节点
*生成MappedStatement=Map<id,statement>,id就是接口名+sql id(方法名)
*最后将Map封装到sqlsessionFactory并返回 - 查询sql阶段
创建sqlSession会话,根据接口名+方法名去找对应sql statement(这里使用动态代理进行方法调用拦截处理) - 执行阶段
executor处理三件事:
1、预处理将入参解析到sql中去
2、调用jdbc底层执行sql
3、将返回的结果 映射到返回接口类型中去
涉及的主要模式有:工厂模式、动态代理模式、构建者模式等