最近参照mybatis3的源码,copy写了一个简易mybatis,搞清了里面的框架结构和实现原理,想分享出来给大家。
项目代码跟mybatis3源码高度重合,含有以下组件:
- SqlSession : 管理整个数据库操作,和获取mapper接口。
- SimpleExecutor :执行数据库sql。
- JdbcTransaction: 打开,关闭数据库连接。
- PooledDataSource:连接池维护。
- MyConfiguration : 全局配置(等同mybatis的Configuration)。
- SqlSessionFactoryBean:整合spring。
以上组件都对应有XXXFactory工厂(比如:SqlSession Factory,JdbcTransactionFactory等),我就不列出了。
解析模块:
mybatis的 Configration类 的初始化是通过解析组件解析后,再为Configration设置值的,我这里直接复用了mybatis的XMLConfigBuilder解析组件,然后通过MybatisConfigureAdapter适配器来将Configration转换成自己的MyConfigration。
1.项目包结构
2.客户端接入
public class MyTest {
public static void main(String[] args) throws Exception {
//整合spring用法
testSpringMybatis