1. 程式人生 > >Mybatis_運行原理

Mybatis_運行原理

mybatis運行原理

1、獲取sqlSessionFactory對象:
解析文件的每一個信息保存在Configuration中,返回包含Configuration的DefaultSqlSession;
註意:【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對象技術分享

.


獲取接口的代理對象(MapperProxy)技術分享

.

查詢總流程

技術分享

Mybatis_運行原理