記錄一下自己對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...