启动流程
mybatis的启动流程可以归结为Mapper的初始化。比如说PersonMapper接口初始化后,会变成一个可以使用的实例引用。
- MyClient 调用 SqlSessionFactoryBuilder的build方法
- SqlSessionFactoryBuilder调用new XMLConfigBuilder.parse,然后用返回值Configuration去new DefaultSqlSessionFactory。
- XMLConfigBuilder.parse会处理各种配置信息,组件Configuration对象。
- 有了DefaultSqlSessionFactory后可以openSession。openSession里面会new DefaultSqlSession
- DefaultSqlSession需要三个参数,分别是configuration,executor,autoCommit| configuration是上面来的。executor是调用configuration.newExecutor(Transaction, ExecutorType);
- 到此便获取了SqlSession(DefaultSqlSession);
- 然后调用getMapper,如上DefaultSqlSession的三个参数中有configuration,getMapper的时候,也是从configuration中获取Mapper.获取的Mapper实例是
调用流程
mybatis的调用可以归结为Mapper的方法调用。