MyBatis 框架 ------- 1.8 延遲加載

加載:把硬盤裏的東西裝到內存
    
延遲加載:(也叫懶加載 LazyLoading)
    1.什麼是延遲加載?
        指查詢的延遲加載,當代碼中執行到查詢語句,並不是馬上到數據庫中執行查詢語句,
        而是根據設置好的延遲策略向後推遲查詢語句的執行,這就是延遲加載.
    
        (只要是查詢,都能做延遲加載,但是不同的框架延遲加載不同.)
    2.使用延遲加載的作用:    
        使用延遲加載可以減輕數據庫(DB)服務器的壓力.
        
    3.MyBatis框架的延遲加載
        (1)只能對關聯對象進行查詢時使用延遲加載策略.
                對於主加載對象,均採用直接加載.
            (注:hibernate中,主加載對象和關聯對象都可以使用延遲加載)
        (2)要應用延遲加載查詢,只能使用多表單獨查詢,而不能使用多表連接查詢.因爲多表連接查詢的本質是查詢一張表,
               是將多張表首先連接成了一張表,再進行的查詢.查詢一個信息,就會將所有的信息全部查詢到.
        
    4.基本概念
        (1)主加載對象

        (2)關聯對象
            
        (3)主表
            
        (4)關聯表,也稱爲從表
        
    5.延遲加載策略
        延遲加載策略:是指到DB中真正執行select語句進行查詢的時機設置.
            
        MyBatis中的延遲加載策略共分爲3種:
            (1)直接加載
                當代碼中執行到查詢語句時,馬上就到DB中執行select語句
            (2)侵入式延遲加載
                指將關聯對象的詳情(詳情即具體數據)侵入到了主加載對象詳情之中,作爲主加載對象詳情的一部分出現.
                當要訪問主加載對象的詳情時,需要將主加載對象所有詳情進行查詢,但由於關聯對象詳情作爲主加載對象
                詳情的一部分出現了,所以,這個查詢不僅會查詢主表,還會查詢關聯表.
            (3)深度延遲加載
                指當需要訪問主加載對象詳情時,只會查詢主表,而不會查詢關聯表.只有當真正訪問關聯對象詳情時,纔會查詢關聯表.
        
        

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章