mybatis原始碼解析之mapper解析(二)

2021-08-21 22:13:07 字數 2315 閱讀 7103

在sqlsessionfactorybuilder中存在這樣乙個方法,所有的的build都會呼叫下面的這個方法

public sqlsessionfactory build(inputstream inputstream, string environment, properties properties)  catch (exception e)  finally  catch (ioexception e) 

}}

public configuration parse() 

parsed = true;

// 此處的去解析configuration配置的**

parseconfiguration(parser.evalnode("/configuration"));

return configuration;

}

private

void

parseconfiguration(xnode root) catch (exception e)

}

url=""/>

private

if (parent

!=null) else else

if (resource ==

null

&& url !=

null

null) else

if (resource ==

null

&& url ==

null

null) else }}

}}

進入到configuration類中,我們可以看到三個方法

/**

* 將指定包下面的指定介面進行載入

*/public

void

} /**

* 載入指定包下面的所有介面

*/public

void

} /**

* 載入指定的介面

*/public

void

}

public

class

private

final configuration config;

private

public

this.config = config;

} @suppresswarnings("unchecked")

public

throw

}try catch (exception e)

} public

boolean

} public

void

// 是否是介面

if (type.isinte***ce())

boolean loadcompleted = false;

try finally }}

} /**

*@since 3.2.2

*/} /**

*@since 3.2.2

*/public

void

// 構建解析過濾器

resolverutil> resolverutil = new resolverutil>();

// 過濾查詢packagename下面所有的supertype類的子類或者實現類

resolverutil.find(new resolverutil.isa(supertype), packagename);

// 將查詢到的所有類進行新增

}} /**

*@since 3.2.2

*/public

void

} }

string resource = type.tostring();

if (!configuration.isresourceloaded(resource))

} catch (incompleteelementexception e) }}

parsependingmethods();

從上述的流程中,我們可以看到乙個loadxmlresource()方法,我們繼續進入到這個方法。

private

void loadxmlresource() catch (ioexception e)

if (inputstream != null)

}}

MyBatis原始碼解析之JdbcType

注意 今天遇到乙個問題。resultcolumn gmt create jdbctype date property gmtcreate resultcolumn gmt modified jdbctype date property gmtmodified 執行出來的時間只有年月日。這個就尷尬了。...

mybatis原始碼解析

最近閱讀了許久的mybatis原始碼,小有所悟。同時也發現網上有許多優秀的mybatis原始碼講解博文。本人打算把自己閱讀過的 覺得不錯的一些博文列出來。以此進一步加深對mybatis框架的理解。其實還有乙個目的是,本人也想寫一系列博文來分享自己對mybatis的理解。然而。個人文筆太差,列出的這些...

mybatis原始碼解析

類列表 sqlsessionfactory 說明 sqlsession物件的工場用於建立sqlsession。sqlsession 說明 執行sql的介面類。configuration 說明 資料庫連線和sql語句配置類。executor 說明資料操作方法介面類 步驟 載入xml檔案到xmlconf...