开发者社区 问答 正文

dao类循环单个查询和批量查询,哪个效率高?

先简单描述下我的开发场景:首先我需要访问web service服务,获取一个数据集合List list。然后需要根据Entity的id属性查询数据库,绑定Entity的图片路径imagePath。需要说明的是,list集合的数据量不大。
然后我个人采用的方法是,循环list,每次调用dao类的queryImageById(int id)方法,逐个绑定Entity的imagePath。但我认为不妥的是,当list中数据量过大时,这样循环调用数据库查询,获取连接、关闭连接等等,是很消耗性能的。
那我能想到的第二种方式根据list进行批量查询,将得到的查询结果再循环,逐个比对list中Entity的id值,然后绑定Entity的imagePath。这种方法个人认为不用频繁地操作数据库,性能会提高。但循环次数增多,看的很繁琐。首先需要循环list,获取Entity的id集合;然后调用dao类类似queryImageByBatch(List<Integer> ids)的方法,获取到所有Entity的imagePath后(假设是Map,key是Entity的id,value为Entity的imagePath);最后循环list和Map,按照id绑定Entity的imagePath。
各位朋友有什么建议,哪个效率高?

展开
收起
落地花开啦 2016-02-29 17:50:28 3864 分享 版权
1 条回答
写回答
取消 提交回答
  • 喜欢技术,喜欢努力的人

    原则是尽可能的减少连接数据库的次数。因为list中的数据在另一个服务器中,所以没办法联合查询的

    2019-07-17 18:50:44
    赞同 展开评论
问答分类:
问答地址: