for循环中操作数据库

业务中出现在循环中频繁查询数据库对比数据,频繁连接数据库耗费资源。

  1. 可以将数据取出放进list进行操作
  2. 可以利用sql中in 或者 exists 进行批量查询,减少连接次数
List<A> listA = dao.getAlist();
Map<String,Object> mapA = new HashMap<String,Object>();
//将a放进map中
for(A a : listA){
 mapA.put(a.getId(),a);
}

List<B> listB =  dao.getBlist();
Map<String, Object> A_B = new HashMap<String, Object>();
for(B b : listB){
   A a = mapA.get(b.getAId());
   //业务代码
}

这样即可取出相关AB进行操作。

你可能感兴趣的:(开发小问题)