MyBatis 延遲載入介紹及配置

2021-08-14 11:41:07 字數 786 閱讀 7035

一、什麼是延遲載入:

**中有查詢語句,當執行到查詢語句時,並不是馬上去db中查詢,而是根據設定的延遲策略將查詢向後推遲。

二、mybatis的延遲載入只能在對關聯物件進行查詢時使用延遲載入。

三、主載入物件、關聯物件、主表、關聯表的概念:

比如我們country表裡有多個國家,minister表裡有某個國家所對應的**,我們查country時,並一帶將其中的minister查出來,這裡的country就是主載入物件,對應的表就是主表,minister就是關聯物件,對應的表就是關聯表。

四、延遲載入策略(指到db中真正執行select語句進行查詢的時機設定):

(一),直接載入:遇到**中查詢語句,馬上到db中執行select語句進行查詢;【這種只能用於多表單獨查詢】

(二),侵入式延遲載入:將關聯物件的詳情(具體資料,如id、name)侵入到主載入物件,作為主載入物件的詳情的一部分出現。當要訪問主載入物件的詳情時才會查詢主表,但由於關聯物件詳情作為主載入物件的詳情一部分出現,所以這個查詢不僅會查詢主表,還會查詢關聯表。

(三)、深度延遲載入:當需求訪問主載入物件詳情時,只會查詢主表,而不會查詢關聯表,只有真正訪問關聯物件詳情時,才會查詢關聯表。

五、使用延遲載入的目的:減輕db伺服器的壓力。

六、配置(在主配置檔案中配置):

注意:要在properties標籤之後,typealiases標籤之前定義。

主配置檔案延遲載入配置

Mybatis延遲載入

現在有這麼乙個需求,要查詢所有的訂單,並且獲得該訂單的詳細資訊。如果一次性把所有需要的資料都請求到,那麼對伺服器和資料庫的開銷會很大,所以可以先載入訂單資訊,需要用到訂單詳情的時候再請求詳情資料。那麼就要用到mybatis的延遲載入 name lazyloadingenabled value tru...

mybatis延遲載入

舉個例子 如果查詢訂單並且關聯查詢使用者資訊。如果先查詢訂單資訊即可滿足要求,當我們需要查詢使用者資訊時再查詢使用者資訊。把對使用者資訊的按需去查詢就是延遲載入。所以延遲載入即先從單錶查詢 需要時再從關聯表去關聯查詢,大大提高資料庫效能,因為查詢單錶要比關聯查詢多張表速度要快。我們來對比一下 關聯查...

mybatis延遲載入

在mybatis中,通常會進行多表聯合查詢,但是有的時候並不會立即用到所有的聯合查詢結果,此時需要一種機制,當需要的時候再查詢,這種 按需查詢 的機制,就可以使用延遲載入來實現。延遲載入可以做到,先從單錶查詢,需要時再從關聯表關聯查詢,這樣可以大大提高資料庫的效能,因為查詢單錶要比關聯查詢多張表速度...