1. 程式人生 > >MyBatis總結(三十)--MyBatis_執行原理總結

MyBatis總結(三十)--MyBatis_執行原理總結

目錄

1說明

  1.1

  1.2

  1.3

2原理總結

1說明

  1.1

  1.2

本文是基於MyBatis的HelloWorld程式碼進行研究的。程式碼來自MyBatis總結(二)--helloworld。研究任何框架都建議先從HelloWorld開始研究原始碼。其次本文內容只是文字敘說,如果需要親自實踐,可以打斷點並按照本文總結的內容一一對應著斷點跟著走。

  1.3

本文研究路線分四步如下圖:

2原理總結

     2.1總結的文字描述

呼叫DefaultSqlSession的增刪改查(Executor);然後會建立一個StatementHandler物件。(同時也會創建出ParameterHandler和        ResultSetHandler)
  
再呼叫StatementHandler預編譯引數以及設定引數值;並且使用ParameterHandler來給sql設定引數

這時才開始呼叫StatementHandler的增刪改查方法;ResultSetHandler封裝結果
  注意: 四大物件每個建立的時候都有一個interceptorChain.pluginAll(parameterHandler);

     2.2介紹下MyBatis的四大物件

Executor:實際上呼叫的就是StatementHandler

StatementHandler:處理sql語句預編譯,設定引數等相關工作;

ParameterHandler:設定預編譯引數用的

ResultHandler:處理結果集

     2.3圖文介紹

3分步介紹各個流程

3.1根據配置檔案建立SQLSessionFactory

3.2、返回SqlSession的實現類DefaultSqlSession物件。 他裡面包含了Executor和Configuration; Executor會在這一步被建立

3.3、getMapper返回介面的代理物件 包含了SqlSession物件

3.4、查詢流程