MyBatis 延遲載入

2022-09-16 15:15:11 字數 1336 閱讀 9132

一、延遲載入

mybatis中的延遲載入,也稱為懶載入,是指在進行關聯查詢時, 按照設定延遲規則推遲對關聯物件的select查詢。延遲載入可以有效的減少資料庫壓力。

mybatis的延遲載入只是對關聯物件的查詢有延遲設定,對於主載入物件都是直接執行查詢語句的。
二、關聯物件的載入時機mybatis根據對關聯物件查詢的select語句的執行時機,分為三種型別:直接載入、侵入式延遲載入、深度延遲載入。

示例:建立country和minister的db表

直接載入示例:

上面的語句,系統預設設定為「false」

輸出:

深度延遲載入示例(只訪問cname,就不查minister表,提高了效率)

//系統預設"aggressivelazyloading"為false

"lazyloadingenabled"類似於開關功能。

@test

public

void

test01()

執行順序如下(當前「aggressivelazyloading」為false):

侵入式延遲示例:

執行順序如下:

總結:

Mybatis延遲載入

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

mybatis延遲載入

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

mybatis延遲載入

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