使用延遲加載意義
網上理解:在進行資料查詢時,為了提高資料庫查詢性能,盡量使用單表查詢,因為單表查詢比多表關聯查詢速度要快。
如果查詢單表就可以滿足需求,一開始先查詢單表,當需要關聯資訊時,再關聯查詢,當需要關聯資訊再查詢這個叫延遲加載。
mybatis中resultMap提供延遲加載功能,通過resultMap配置延遲加載。
個人理解:在使用延時加載時候可以在需要單張資料庫表的時候避免查詢多張資料表浪費時間
在開啟延時加載之前,如果你的sql陳述句時多表連接查詢,則會把所有連接的表一起查詢出來,無論是否需要這個資料,但是設定好延時加載時候,只會取出你所需要的資料,這樣就大大節省了你查詢的時間(就好像名字一樣,好懶哦!lazyLoading)
首先是個人sql陳述句代碼

然后如果想要設定延時加載,在mybaitis.xml中的組態檔也是必不可少的,在這里是主組態檔(在百度上搜索mybaitis,里面的’xml配置‘中的’settings‘里面有各種詳解)
lazyLoadingEnabled:延遲加載的全域開關。當開啟時,所有關聯物件都會延遲加載。默認為flase
aggressiveLazyLoading:當開啟時,任何方法的呼叫都會加載該物件的所有屬性。 否則,每個屬性會按需加載。默認為flase
在總開關開啟的情況下,把侵入式延遲加載的主開關設定成flase,會進行延遲加載。

當為flase時候,則不會使用延遲加載,且侵入式延遲加載此時作廢
在總開關開啟的情況下,把侵入式延遲加載的主開關設定成flase,會進行延遲加載;
如圖所示,在標記前面并沒有查詢第二條sql陳述句所查詢的值,即第二條sql不會執行

當把開關設定成true時候,不會進行延遲加載,而是會呼叫所有方法如圖所示,sql陳述句運行了兩條

關于延遲加載的總結暫時就這么多,大家如果誰有相關的知識或者有哪里寫錯了歡迎在下面留言哦!
uj5u.com熱心網友回復:
第一個贊是我啦uj5u.com熱心網友回復:
知識點補充其中:
一對多,多對多:通常情況下我們采用延遲加載
多對一,一對一:通常情況下我們采用立即加載
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/105999.html
標籤:基礎類
上一篇:各位大佬
