有兩張表A、B。
A有500條記錄,B有500乃至更多條,查詢A表所有記錄封裝成List;
現根據A表的ID查詢B表中對應的記錄,那麼
List<A> listA = getObjects(A.class);
for(A a : listA){/*循環查詢數據庫*/
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);
}
}
這兩種方式哪個效率高
List<A> listA = getObjects(A.class);
Map<Long,Object> mapA = new HashMap<String,Object>();
/*這裡map的key是Object中的某一字段的類型,可以是int,string,long之類的*/
for(A a : listA){
mapA.put(a.getId(),a);
}
List<B> listB = getObjects(B.class);
Map<String, Object> A_B = new HashMap<String, Object>();
for(B b : listB){
A a = mapA.get(b.getAId());
A_B.put("B",b);
A_B.put("A",a);
}
/*這樣就避免了N次查詢數據庫,提高執行效率了*/