需要循环对一个对象进行组装数据,中间需要查询数据库,如何优化?

例如:

img

在上面代码会在循环中查询对应信息,然后将查询到的数据组装到对象中的操作,这样的代码循环查库因该怎么去避免?
如何对上面代码进行优化呢?

1.能统一查库的操作就不要循环去查
比如有一个主从表,你可以先查主表,然后循环根据外键再去查从表,也可以直接一个left join查出来,哪个效率高不用讨论
2.如果查询不可避免,而数据之间没有逻辑顺序,可以使用线程池来加快速度

北京路由器线

这种业务的话,你把所有rmId抽出来,in查询,
rmType如果量不多,又没啥关系,看看能不能直接查询出来放到缓存
如果不行就left join
改in,对数据库的操作就只有1次,这是常用的解决方案

一般把条件抽出来操作一次数据库,再用条件做key,将得到的数据封装成map集合,再用stream流map处理匹配数据即可

把list 中需要用到查询数据库 id字段 的抽出来,查询数据库放到map 里面,在循环list 取map 对比,放到集合里面