1、概念:


MyBatis中的延遲加載,也稱為懶加載,是指在進行表的關聯(lián)查詢時,按照設置延遲規(guī)則推遲對關聯(lián)對象的select查詢。例如在進行一對多查詢的時候,只查詢出一方,當程序中需要多方的數(shù)據(jù)時,mybatis再發(fā)出sql語句進行查詢,這樣子延遲加載就可以的減少數(shù)據(jù)庫壓力。MyBatis 的延遲加載只是對關聯(lián)對象的查詢有遲延設置,對于主加載對象都是直接執(zhí)行查詢語句的。
2、加載時機:
直接加載:執(zhí)行完對主加載對象的 select 語句,馬上執(zhí)行對關聯(lián)對象的 select 查詢。侵入式延遲: 執(zhí)行對主加載對象的查詢時,不會執(zhí)行對關聯(lián)對象的查詢。但當要訪問主加載對象的詳情屬性時,就會馬上執(zhí)行關聯(lián)對象的select查詢。深度延遲: 執(zhí)行對主加載對象的查詢時,不會執(zhí)行對關聯(lián)對象的查詢。訪問主加載對象的詳情時也不會執(zhí)行關聯(lián)對象的select查詢。只有當真正訪問關聯(lián)對象的詳情時,才會執(zhí)行對關聯(lián)對象的 select 查詢。
注意:延遲加載的應用要求:關聯(lián)對象的查詢與主加載對象的查詢必須是分別進行的select語句,不能是使用多表連接所進行的select查詢。因為,多表連接查詢,實質是對一張表的查詢,對由多個表連接后形成的一張表的查詢。會一次性將多張表的所有信息查詢出來。
3、侵入式延遲加載:
①、Mybatis-config.xml大配置文件,首先開啟延遲加載,然后再配置侵入式加載
<!--開啟延遲加載-->
<setting name="lazyLoadingEnabled" value="true"/>
<!--配置侵入式延遲加載 默認為false(深度加載)
侵入式:默認只會執(zhí)行主加載SQL,那么當訪問主加載對象的詳細信息時才會執(zhí)行關聯(lián)對象的SQL查詢
深度延遲:默認只執(zhí)行主加載SQL,那么當調用到主加載對象中關聯(lián)對象的信息時才會執(zhí)行關聯(lián)對象的SQL查詢
-->
<setting name="aggressiveLazyLoading" value="true"/>另外有需要云服務器可以了解下創(chuàng)新互聯(lián)建站www.yijiale78.com,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
分享名稱:Mybatis延遲加載的實現(xiàn)方式-創(chuàng)新互聯(lián)
本文網址:http://www.yijiale78.com/article28/djgjjp.html
成都網站建設公司_創(chuàng)新互聯(lián),為您提供App設計、網站營銷、網站收錄、面包屑導航、網站建設、微信小程序
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)