凱哥Java 凱哥java
1:什麼是延遲加載?
2:延遲加載的使用
3:總結&下節預告
本文是《凱哥陪你學系列-框架學習之mybatis框架學習》中第二十一篇 延遲加載
聲明:本文系凱哥Java(www.kaigejava.com)原創,未經容許,禁止轉載!
一:什麼是延遲加載?
延遲加載又叫懶加載,又叫按需加載。
也就是說,先加載主信息,在須要的時候,在去加載從信息。
在mybatis中,resultMap標籤的association標籤和collection標籤具備延遲加載的功能。
二:延遲加載的使用(以association標籤爲例)
需求:查詢訂單信息,來關聯查詢用戶信息(見:框架學習系列 mybatis 第十七篇 高級結果映射一)
原sql語句:java
SELECT orders.`id`, orders.`user_id`, orders.`number`, user.`username`, user.`sex` FROM orders, USER WHERE orders.`user_id` = user.`id`
兩個sql語句之間的關係是訂單表的用戶id=用戶表的id
根據需求咱們能夠分步驟進行查詢:
1:建立一個sql語句來查詢訂單信息
2:建立一個sql語句來查詢用戶信息
3:設置懶加載來處理
2.1:建立查詢訂單信息的映射文件
2.2:建立查詢用戶信息的sql:
2.3:mapper接口中
2.4:開啓延遲加載。
還記得以前說的全局變量名?setting標籤設置延遲的。
在sqlMapConfig.xml中,配置setting標籤
2.5:測試類
三:下節預告
在下節中,咱們將要開始學習緩存了。mybatis的緩存有幾種?怎麼配置?歡迎學習下一篇sql