1. 组成
总共会需要几个工具
- configuration:加载配置
- 内部的environment,加载数据源(也就是封装了JDBC获取连接的操作)
- mybatis-config.xml,获取映射集合mappers
- mybatis.xml文件,获取各个mapper的主要sql语句
- sqlsession:SQL会话,也就是用户和DB之间沟通的桥梁
- 包含全局configuration
- 包含全局执行器
- executor:执行器,用来真正执行sql语句
- statementHandler:执行sql前置工作(设置读取sql的时间、条数等)
- resultHandler:执行sql并获取结果(也就是封装了JDBC的resultset)
- resultsetHandler:封装结果集(对resultset滚动读取并封装)
- mapper:用来存储映射相关,SQL会话的武器
- mapperRepository:存储mapper接口(配置文件的namespace)和对应映射
- mapperProxy:mapper接口的代理类
- mapperMethod:mapper接口对应方法(封装SQL语句)
- SQLCommand:封装SQL
- methodSignature:调整参数映射
2. 流程
- 【configuration】加载配置文件
- 【SQLSession】打开一个会话
- 【MapperRepository】找到接口映射
- 【MapperProxy-MapperMethod】执行接口方法
- 【SQLSession-Executor】真正执行者
- 【StatementHandler-ResultHandler】封装执行结果
3. 设计模式
- 工厂方法模式。
- 建造者模式。
- 装饰模式。
- 代理模式