Mybatis地址:
中文地址:mybatis.net.cn/
GitHub地址:
github.com/mybatis/myb…
源码下载地址:
github.com/mybatis/myb…
安装Git 后 直接 git clone
github.com/mybatis/myb… 就可以了
下面是下载的源码及模块信息
Mybatis源码结构
Mybatis整体架构和对应模块信息如下,个别包忽略
Mybatis架构
接口层是对外提供的统一接口,SqlSession,默认实现DefaultSqlSession,对外提供了增删改查的基础操作和提交,回滚,关闭资源;
同时还有获取config ,mapping,connection 我一直觉着从单一职责考虑,这几个方法和数据库操作放在一个接口上不是很合理,但也理解这是设计者通过"门面模式"降低接入的复杂度的一个方法。
Mybatis只是一个ORM框架,他也只是对JDBC的一个封装。通过上一篇JDBC的demo可以推理出来,核心处理层大致逻辑如下
执行流程
1、ParamHander: 将xml或者注解的SQL中的占位符参数替换
2、执行SQL语句
3、结果集处理,映射成Java的对象实体
时序图如下:
SqlSession执行时序图
后续的文章从接口层开始逐渐分析源码的各层结构,和设计思路以及设计模式在源码中的应用
下一篇将详细介绍一下SqlSession源码