mybatis探究之延遲載入和快取
阿新 • • 發佈:2020-03-18
#### mybatis探究之延遲載入和快取
##### 一、什麼是延遲載入
###### 1.延遲載入的概念
在mybatis進行多表查詢時,並非所有的查詢都需要立即進行。例如在查詢帶有賬戶資訊的使用者資訊時,我們們並不需要總是在載入使用者資訊時就一定要載入他的賬戶資訊。這時就要用到延遲載入,所謂延遲載入就是在需要用到資料時才進行載入,不需要用到資料時就不載入資料。延遲載入也稱懶載入。
###### 2.延遲載入的好處和壞處
好處:先從單表查詢,需要時再從關聯表去關聯查詢,大大提高資料庫效能,因為查詢單表要比關聯查詢多張錶速度要快。
壞處:因為只有當需要用到資料時,才會進行資料庫查詢,這樣在大批量資料查詢時,因為查詢工作也要消耗
時間,所以可能造成使用者等待時間變長,造成使用者體驗下降。
###### 3.什麼時候使用延遲載入
在對應的四種表關係(一對多,多對一,一對一,多對多)中:
一對多,多對多:通常情況下我們都是採用延遲載入。
多對一,一對一:通常情況下我們都是採用立即載入。
##### 二、一對一實現延遲載入
在[進階案例](https://www.cnblogs.com/liyier/p/12496607.html)的基礎上,進行如下修改:
###### 1.新增延遲載入的配置
在主配置檔案SqlMapConfig.xml檔案中,新增settings標籤,可以參考[mybatis官方文件](https://mybatis.org/mybatis-3/zh/configuration.html)
```xml
```
###### 2.修改主從表對應關係的配置
將對映配置檔案IAccountDao.xml檔案中的resultMap標籤中的association標籤修改為如下: