1,巧用Map可以很大的减少查询数据库的次数
// 定义产品生产商临时Map,方便后面存储产品生产厂家信息
Map<Integer, String> cacheMap = new HashMap<>();
for (Integer id : productIds) {
// 根据产品id查询出产品信息
Product product = pmsProductRepository.findOne(id);
Integer factoryId = product.getFactoryId();
// map中没有该工厂信息,就去数据库查询
if (!cacheMap.containsKey(factoryId)) {
// 查询数据库,拿到数据
Factory factory = factoryRepository.find(factoryId);
Integer factoryId = factory.getId();
String factory = factory.getName();
// 把数据放入map,方便下次使用
cacheMap.put(factoryId ,factoryName);
} else {
// map中有直接从map中取,避免反复查询数据库
cacheMap.get(factoryId);
....................
}
................
// 最后把map置null,是的该对象能够被回收
cacheMap=null;
}