业务中出现在循环中频繁查询数据库对比数据,频繁连接数据库耗费资源。
- 可以将数据取出放进list进行操作
- 可以利用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进行操作。