Mybatis配置和介面對映原理

2021-08-02 20:42:46 字數 1634 閱讀 6817

//介面註冊

public

class

boolean loadcompleted = false

; try finally

}} }

}

public

class

catch (exception e) }}

//建立**的工廠

public

class

<

t>

public

class

() public

getmethodcache

() @suppresswarnings("unchecked")

protected

t newinstance

/*** 傳人sqlsession建立**

* @param

sqlsession

* @return

*/ public

t newinstance

(sqlsession sqlsession)

}

public

class

<

t>

implements

invocationhandler

, serializable

public

object invoke

(object proxy, method method, object args)

throws throwable catch (throwable t)

} //獲取執行方法的封裝物件

//裡面就是找到對應的sql 執行sql語句

} //快取, 不需要每次都建立

private

(method method)

}}

//具體的根據介面找到配置檔案標籤的類

public

class

public

object

execute

(sqlsession sqlsession, object args)

else

if (sqlcommandtype.update == command.gettype()) else

if (sqlcommandtype.delete == command.gettype()) else

if (sqlcommandtype.select == command.gettype()) else

if (method.returnsmany()) else

if (method.returnsmap()) else

} else

if (result == null

&& method.getreturntype().isprimitive() && !method.returnsvoid())

return result;

}}

上面就是根據介面、方法、配置引數找到對應的執行sql,並構造引數,解析執行結果,具體sql執行在sqlsession流程裡面,後面再看。

mybatis 輸入對映和輸出對映

輸入對映和輸出對映 複製昨天的工程,按照下圖進行 最終效果如下圖 parametertype 輸入型別 傳遞簡單型別 參考第一天內容。使用 佔位符,或者 進行sql拼接。傳遞pojo物件 參考第一天的內容。mybatis使用ognl表示式解析物件欄位的值,或者 括號中的值為pojo屬性名稱。傳遞po...

mybatis高階 輸入對映和輸出對映

首先是輸入型別,輸入型別分為以下幾種 1.基本型別。2.pojo物件型別。3.pojo包裝物件。所謂的包裝物件,可以理解為,乙個物件裡面包含著另外乙個物件。簡單輸入型別,比較簡單。在傳入引數的時候,直接將引數型別配置到parametertype中,如下 select from user where ...

mybatis對映和條件查詢

mybatis繫結介面 mybatis對映 資料庫的字段與實體類的對映 把公共的的sql語句提取出來 select link id,site id,link name,link url,link image,clicks,create time,update time,sort,is show,st...