1. 获取sqlSessionFactory对象
解析文件的每一个信息,保存在Configuration中,返回包含Configuration的DefaultStatement
注意:MappedStatement:代表一个增删改查的详细信息。
2. 获取sqlSession对象
返回一个DefaultSQLSession对象,包含Executor和Configuration;
这一步会创建Executor
3. 获取接口的代理对象(MapperProxy)
getMapper,使用MapperProxyFactory创建一个MapperProxy的代理对象
代理对象里面包含了,DefaultSqlSession(Executor)
4. 执行增删改查方法
总结:
1. 根据配置文件(全局,sql映射)初始化出Configuration对象
2. 创建一个DefaultSqlSession对象,
它里面包含Configuration以及Executor(根据全局配置文件中的defaultExecutorType创建出对应的Executor)
3. DefaultSqlSession.getMapper(),拿到Mapper接口对应的MapperProxy
4. MapperProxy里面有(DefaultSqlSession)
5. 执行增伤改查方法:
1. 调用DefaultSqlSession的增删改查(Executor);
2. 创建StatementHandler对象。同时也会创建出ParameterHandler和ResultSetHandler
3. 调用StatementHandler的预编译参数以及设置参数值。
使用ParameterHandler来给sql设置参数
4. 调用StatementHandler的增删改查方法
5. ResultSetHandler封装结果
注意:
四大对象每个创建的时候都会有一个 interceptorChain.pluginAll(parameterHandler);
- 根据配置文件创建SQLSessionFactory
- 返回SqlSession的实现类DefaultSqlSession对象。他里面包含了Executor和Configuration;Executor会在这一步被创建
- getMapper返回接口的代理对象包含了SqlSession对象
- 查询流程
查询流程总结