兩類(1):立即查詢:
根據(jù)id查詢,調(diào)用get方法,一調(diào)用get方法馬上發(fā)送語句查數(shù)據(jù)庫
(2)延遲查詢:
根據(jù)id查詢,調(diào)用load方法,調(diào)用load查詢不會馬上發(fā)送語句查詢數(shù)據(jù)庫,只有得到對象的值(不是id的其他值)的時候才會發(fā)送語句查詢數(shù)據(jù)庫,一直沒用則不會發(fā)送sql語句。
Customer customer = session.load(Customer.class,1);
customer.getCid();//此時也不會查詢
customer.getCustName();//此時執(zhí)行查詢操作
(一)類級別延遲查詢:根據(jù)id查詢返回實(shí)體類數(shù)據(jù),調(diào)用Load方法不會馬上發(fā)送數(shù)據(jù)
(二)關(guān)聯(lián)級別查詢:
查詢某個客戶,再根據(jù)客戶的所有聯(lián)系人。查詢客戶所有聯(lián)系人的過程是否需要延遲,稱為關(guān)聯(lián)延遲。
關(guān)聯(lián)級別延遲操作:
在映射文件中進(jìn)行配置:
1.在set標(biāo)簽上設(shè)置屬性(1)fetch:值select;(2)lazy:值true(延遲,為默認(rèn));false(效率低);extra:及其延遲(效率最高,要什么給什么)
<set name="setLinkMan" fetch="select" lazy="true"/>