mybatis執行流程

2022-08-23 01:33:11 字數 1352 閱讀 8477

​ 記錄一下自己對mybatis的理解和心得.**是自己手寫的乙個mybatisdemo,比較簡陋,只有乙個簡單的查詢語句,但是麻雀雖小五臟俱全,可以理解整個mybatis的執行流程.

**載入全域性配置檔案 **

​將配置檔案載入到inputstream中,dcoumentutils將stream轉換為document物件,根據xml檔案中的標籤去解析.

2. **解析資料來源 **

​ 資料來源資訊解析後封裝到datasource物件中.datasource主要作用就是封裝資料源資訊.再將datasource封裝到configuration中.

4.解析對映檔案

5.解析sql資訊並進行資料封裝

此時也就是sqlsource物件,sqlsource其實是乙個介面.實現類主要有

**mybatis不單單只有這四個,這個只是我的demo中寫了四個. **

ifsqlnode:封裝test資訊,子標籤資訊.

textsqlnode:封裝的是帶有${}的文字字串

staticetextsqlnode:封裝的是帶有#{}的文字字串

mixsqlnode:裝的是帶有${}的文字字串

6. 解析sql語句也是在此時進行的

7.獲取資料庫連線

8.獲取可執行的sql語句

所以boundsql中封裝的資訊就很好理解了,就是封裝了解析後資訊的引數集合和sql語句.

判斷statementtype,我這裡寫的只有prepared一種,後面可以繼續寫其他兩種.

將sql語句通過preparestatement()方法完成拼寫sql.

設定引數,簡單型別就不做說明了.主要說一下pojo型別的

根據獲取到的username通過反射拿到類中對應的字段,這裡也可以解釋我們日常開發中為什麼屬性名要和#{}裡面的內容對應起來.

此時就可以獲得了可以執行的sql語句.

9. 執行sql

執行sql其實很簡單

rs = preparedstatement.executequery();
只有這一行**.rs是resultset,結果集.

10.處理結果集

getmetadata其實就是獲取結果集的表結構資訊.通過表結構資訊獲取到列數.

致此,本人寫的mybatisdemo已經完成.感謝各位看官.

mybatis執行流程

通過配置檔案取到sqlsessionfactory string resource mybatis config.xml inputstream inputstream null try catch ioexception e sqlsessionfactory new sqlsessionfact...

MyBatis的執行流程

一 載入配置檔案並初始化 mybatis的配置檔案一共有兩類 二 通過sqlsesssionfactory.opensession 方法開啟乙個sqlsession物件 三 mybatis執行器executor根據sqlsession傳遞的引數執行query 方法 executor.query 方法...

mybatis的執行流程

載入全域性配置檔案 mybatisconfig.xml 這個配置檔案中通常是別名設定,的設定,xml全域性配置檔案會產生乙個構建者類,叫做xmlconfigbuilder,這個類是用來通過xml配置 檔案來構建configuration物件例項的,構建的過程就是解析 mbatistconfig xm...