通过 Mybaits 动态代理,我们了解到Mybaits将接口调用通过反射映射到SqlSession中对应的方法。
那么SqlSession是如果对相关的操作进行处理呢?
跟进Mybaits源码,可以看到SqlSession的一次query执行时序图如下:
其中核心成员包括:
- SqlSessionFactory:SqlSession工厂类,用于生成对应的SqlSession。
- SqlSession: 对数据库进行相关操作,实现类中包括Configuration 和 Executor。
- Executor:Executor通过对MappedStatement、parameter等参数生成对应的StatemenHandler,调用StatemenHandler的方法。
- StatementHandler:Statement包装类,通过