分析原始碼,我們還是從程式設計式的demo 入手。spring 的整合我們會在後面講到。
inputstream inputstream = resources.getresourceasstream(resource);把檔案讀取成流的這一步我們就省略了。所以下面我們分成四步來分析。sqlsessionfactory sqlsessionfactory = new sqlsessionfactorybuilder().build(inputstream);
sqlsession session = sqlsessionfactory.opensession();
問題:解析的時候怎麼解析的,做了什麼,產生了什麼物件,結果存放到了**。解析的結果決定著我們後面有什麼物件可以使用,和到**去取。
第二步,通過sqlsessionfactory 建立乙個sqlsession。
問題:sqlsession 是用來運算元據庫的,返回了什麼實現類,除了sqlsession,還建立了什麼物件,建立了什麼環境?
第四步,呼叫介面方法。
問題:我們的介面沒有建立實現類,為什麼可以呼叫它的方法?那它呼叫的是什麼方法?它又是根據什麼找到我們要執行的sql 的?也就是介面方法怎麼和xml 對映器裡面的statementid 關聯起來的?
此外,我們的方法引數是怎麼轉換成sql 引數的?獲取到的結果集是怎麼轉換成物件的?
接下來我們就會詳細分析每一步的流程,包括裡面有哪些核心的物件和關鍵的方法。
mybatis原始碼解讀(3)
string resource mybatis config.xml inputstream inputstream resources.getresourceasstream resource sqlsessionfactory sqlsessionfactory new sqlsessionfa...
mybatis原始碼解讀(7)
private void typealiaseselement xnode parent else else catch classnotfoundexception e alias author type domain.blog.author alias blog type domain.blog...
MyBatis 原始碼解讀 配置解析過程
我們從mybatis config.xml 開始。在第一節課的時候我們已經分析了核心配置了,大概明白了mybatis 有哪些配置項,和這些配置項的大致含義。這裡我們再具體看一下這裡面的標籤都是怎麼解析的,解析的時候做了什麼。sqlsessionfactory sqlsessionfactory ne...