//介面註冊
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...