Mybatis延遲載入(懶載入)

2021-08-20 06:12:48 字數 1313 閱讀 2800

將採用高階對映實現多表聯查時向資料庫發出的sql語句拆分成若干條單錶查詢的sql語句,當需要返回資料時才會向資料庫發出只針對當前資料的sql語句。

需求:根據訂單編號,查詢訂單,並返回訂單詳情描述資訊實現延遲載入的前提條件

在settings中配置與延遲載入有關的屬性.

column:查詢user的引數,該id的資訊其實是在查詢出來的order中的user_id -->

select * from tb_order where order_number = #

select * from tb_user where id = #

select * from tb_orderdetail where order_id = #

注意兩點:

1、元素association、collection中的colunm屬性,如果傳遞的引數只有乙個,直接使用user_id即可,如果是多個可以使用來傳遞。

2、resulttype屬性:若查詢結果是集合,那應該是集合可以包含的型別,而不能是集合本身。使用 resulttype 或 resultmap,但不能同時使用。

採用動態**的方式完成查詢

order queryorderuserlazy(@param("ordernumber") string ordernumber);

}測試**

@before

public void setup() throws exception

// @test

public void testqueryorderuserlazy()

}測試結果

另外附上表關係圖及全域性配置檔案

mybatis-config.xml配置

<?xml version="1.0" encoding="utf-8" ?>

懶載入 延遲載入

概念 為了推遲和資料庫互動的時間,推遲到真正需要這個物件資料的時候。提高系統的效能 通過 asm和cglib二個jar包實現懶載入。domain是非final的 1 session.load懶載入 1 返回的是乙個 物件,new關鍵字來建立乙個 物件,理解成乙個快捷方式,不是真正的類,而是 類。2 ...

mysql懶載入 mybatis懶載入

1.概念 懶載入就是按需載入,我們需要什麼的時候再去進行什麼操作。而且先從單錶查詢,需要時再從關聯表去關聯查詢,能很大提高資料庫效能,因為查詢單錶要比關聯查詢多張表速度要快。在mybatis中,resultmap可以實現高階對映 使用association collection實現一對一及一對多對映...

EF延遲載入 懶載入

關於ef懶載入英文翻譯lazyload也俗稱延遲載入 只有是 導航屬性 並且 類是public 字段必須用virtual 才能用延遲載入,ef預設是延遲載入的,什麼是延遲載入呢?延遲載入就是當需要用到集合的時候才會去資料庫取資料,有點是什麼呢?優點就是按需取資料提高了載入的速度,缺點是需要多次執行s...