在全域性配置引數設定開啟延遲載入總開關
>
name
="lazyloadingenabled"
value
="true"
/>
name
="aggressivelazyloading"
value
="false"
/>
settings
>
設定項
描述允許值
預設值lazyloadingenabled
全域性性設定懶載入。如果設為『false』,則所有相關聯的都會被初始化載入。
true | false
false
aggressivelazyloading
當設定為『true』的時候,懶載入的物件可能被任何懶屬性全部載入。否則,每個屬性都按需載入。
true | false
true
查詢訂單及使用者的資訊,一對一查詢。
剛開始只查詢訂單資訊
當需要使用者時呼叫 orders類中的getuser()方法執行延遲載入 ,向資料庫發出sql。
"findorderuserlistlazyloading"
resultmap
="orderuserlistlazyloading"
>
select
* from
orders
select
>
配置resultmap設定延遲載入的物件
type
="orders"
id="orderuserlistlazyloading"
>
property
="id"
column
="id"
/>
property
="userid"
column
="user_id"
/>
property
="number"
column
="number"
/>
property
="createtime"
column
="createtime"
/>
property
="note"
column
="note"
/>
property
="user"
select
= column
="user_id"
>
association
>
resultmap
>
// 五、配置延遲載入
public list
findorderuserlistlazyloading()
throws exception;
測試**:
/**
* * @description: 一對一查詢延遲載入
* @param @throws exception
* @return void
*/@test
public
void
testfindorderuserlistlazyloading()
throws exception
一對多延遲載入
一對多延遲載入的方法同一對一延遲載入,在collection標籤中配置select內容。
Mybatis延遲載入
現在有這麼乙個需求,要查詢所有的訂單,並且獲得該訂單的詳細資訊。如果一次性把所有需要的資料都請求到,那麼對伺服器和資料庫的開銷會很大,所以可以先載入訂單資訊,需要用到訂單詳情的時候再請求詳情資料。那麼就要用到mybatis的延遲載入 name lazyloadingenabled value tru...
mybatis延遲載入
舉個例子 如果查詢訂單並且關聯查詢使用者資訊。如果先查詢訂單資訊即可滿足要求,當我們需要查詢使用者資訊時再查詢使用者資訊。把對使用者資訊的按需去查詢就是延遲載入。所以延遲載入即先從單錶查詢 需要時再從關聯表去關聯查詢,大大提高資料庫效能,因為查詢單錶要比關聯查詢多張表速度要快。我們來對比一下 關聯查...
mybatis延遲載入
在mybatis中,通常會進行多表聯合查詢,但是有的時候並不會立即用到所有的聯合查詢結果,此時需要一種機制,當需要的時候再查詢,這種 按需查詢 的機制,就可以使用延遲載入來實現。延遲載入可以做到,先從單錶查詢,需要時再從關聯表關聯查詢,這樣可以大大提高資料庫的效能,因為查詢單錶要比關聯查詢多張表速度...