有兩張表A、B。A有500條記錄,B有500乃至更多條,查詢A表所有記錄封裝成List;現(xiàn)根據(jù)A表的ID查詢B表中對(duì)應(yīng)的記錄,那么List<A> listA = getObjects(A.class);
for(A a : listA){/*循環(huán)查詢數(shù)據(jù)庫(kù)*/
B b= getObjectById(a.getId());
map.put("A",a.name);
map.put("B",b.time);
}
List<B> listB = getObjects(B.class);
for(A a : List<A>){
for(B b : List<B>){
if(a.getId() == b.getAid())
map.put("A",a.name);
map.put("B",b.time);
}
}這兩種方式哪個(gè)效率高
4 回答

慕蓋茨4494581
TA貢獻(xiàn)1850條經(jīng)驗(yàn) 獲得超11個(gè)贊
我覺(jué)得是第二種。如果單純的是代碼,那的確是第一種。但是,你第一種方式是循環(huán)訪問(wèn)數(shù)據(jù)庫(kù)!
而第二種只需一次訪問(wèn)!試問(wèn),你一個(gè)查詢,要連續(xù)查詢幾百萬(wàn)次數(shù)據(jù),這連接數(shù)真的無(wú)法想象。代價(jià)也是相當(dāng)昂貴的!
添加回答
舉報(bào)
0/150
提交
取消