通過前面的學習,我們已經掌握了mybatis中一對一,一對多,多對多關係的配置及實現,可以實現物件的關聯查詢。實際開發過程中很多時候我們並不需要總是在載入使用者資訊時就一定要載入他的賬戶資訊。此時就是我們所說的延遲載入。
延遲載入:就是在需要用到資料時才進行載入,不需要用到資料時就不載入資料。延遲載入也稱懶載入. 好處:先從單錶查詢,需要時再從關聯表去關聯查詢,大大提高資料庫效能,因為查詢單錶要比關聯查詢多張表速度要快。
壞處:因為只有當需要用到資料時,才會進行資料庫查詢,這樣在大批量資料查詢時,因為查詢工作也要消耗時間,所以可能造成使用者等待時間變長,造成使用者體驗下降。
需求:查詢賬戶(account)資訊並且關聯查詢使用者(user)資訊。如果先查詢賬戶(account)資訊即可滿足要求,當我們需要查詢使用者(user)資訊時再查詢使用者(user)資訊。把對使用者(user)資訊的按需去查詢就是延遲載入。
mybatis第三天實現多表操作時,我們使用了resultmap來實現一對一,一對多,多對多關係的操作。主要是通過association、collection實現一對一及一對多對映。association、collection具備延遲載入功能。
需求:查詢賬戶資訊同時查詢使用者資訊。
Mybatis延遲載入
現在有這麼乙個需求,要查詢所有的訂單,並且獲得該訂單的詳細資訊。如果一次性把所有需要的資料都請求到,那麼對伺服器和資料庫的開銷會很大,所以可以先載入訂單資訊,需要用到訂單詳情的時候再請求詳情資料。那麼就要用到mybatis的延遲載入 name lazyloadingenabled value tru...
mybatis延遲載入
舉個例子 如果查詢訂單並且關聯查詢使用者資訊。如果先查詢訂單資訊即可滿足要求,當我們需要查詢使用者資訊時再查詢使用者資訊。把對使用者資訊的按需去查詢就是延遲載入。所以延遲載入即先從單錶查詢 需要時再從關聯表去關聯查詢,大大提高資料庫效能,因為查詢單錶要比關聯查詢多張表速度要快。我們來對比一下 關聯查...
mybatis延遲載入
在mybatis中,通常會進行多表聯合查詢,但是有的時候並不會立即用到所有的聯合查詢結果,此時需要一種機制,當需要的時候再查詢,這種 按需查詢 的機制,就可以使用延遲載入來實現。延遲載入可以做到,先從單錶查詢,需要時再從關聯表關聯查詢,這樣可以大大提高資料庫的效能,因為查詢單錶要比關聯查詢多張表速度...