程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> java-循環查詢數據庫500次和用雙層for循環進行25w次輪循哪個效率更高

java-循環查詢數據庫500次和用雙層for循環進行25w次輪循哪個效率更高

編輯:編程綜合問答
循環查詢數據庫500次和用雙層for循環進行25w次輪循哪個效率更高

有兩張表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次查詢數據庫,提高執行效率了*/
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved