Mybatis的延遲載入

2021-07-11 05:54:35 字數 1145 閱讀 3426

1.延遲載入的作用

但是懶載入也有缺點,  在按需載入時會多次連線資料庫,同時會增加資料庫的壓力。所以在實際使用時,要衡量是否使用延遲載入

2.實現:     

(1) 在sqlmapconfig.xml 檔案中配置懶載入開關

select="finduserbyid" column="user_id">

select * from orders

select username from user where id=#

(4)測試結果

查詢訂單資訊,日誌發現只能有一條sql(查詢訂單資訊)

debug [main] - opening jdbc connection

debug [main] - created connection 1911476135.

debug [main] - setting autocommit to false on jdbc connection [com.mysql.jdbc.jdbc4connection@71eecfa7]

debug [main] - ooo using connection [com.mysql.jdbc.jdbc4connection@71eecfa7]

debug [main] - ==>  preparing: select * from orders 

debug [main] - ==> parameters: 

debug [main] - <==      total: 2

當呼叫getuser()方法,日誌中打出查詢使用者資訊的sql

debug [main] - ooo using connection [com.mysql.jdbc.jdbc4connection@71eecfa7]

debug [main] - ==>  preparing: select * from user where id=? 

debug [main] - ==> parameters: 2(integer)

debug [main] - <==      total: 1

user [id=2, username=火藍, ***=null, birthday=tue apr 12 00:00:00 cst 2016, address=null, detail=null, score=null]

Mybatis延遲載入

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

mybatis延遲載入

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

mybatis延遲載入

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