我有这样的场景:
我有一个网站,用户发送日期范围,例如2013-01-01
到2013-01-04
,然后我需要从一个范围内的每一天从数据库中获取一些信息,例如在我必须发送的上述场景中请求数据库3次:
2013-01-01 to 2013-01-02,2013-01-02 to 2013-01-03,2013-01-03 to 2013-01-04
因此,您可以看到我是否想要提取一个月,那么这需要很长时间。一个更好更快的想法是调用数据库一次并提取所有信息,例如此范围2013-01-01
到2013-01-04
,同时根据java中的每一天过滤信息。
无论如何,我可以在结果集的帮助下在java中做到这一点吗?如果有人有更好的想法来处理这种情况,我也很感激吗?
更新:
以下是我正在使用的查询:
SELECT enID, sum(frequency) from entity-epoch
WHERE dateID IN(
SELECT dateid
WHERE startdate>=2013-01-01 AND enddate<=2013-01-02)
GROUP BY sum(frequency)
我有一个循环,每天都会调用它吗?(而不是上面提到的日期,我提出了更好的可读性?并用不同的日期提供它。
答案 0 :(得分:2)
更好的想法仍然是仅通过合适的WHERE子句获取您实际想要处理的数据。
答案 1 :(得分:2)
正如@EJP建议的那样,你最好只提取你实际需要的数据,而不是消耗多余的线路和周期,然后再将其全部拉出来。
如果您使用SELECT *
提取数据,尤其如此,因为对数据库模式的未来更改可能会对您的程序逻辑产生潜在的有害影响。这实际上最近出现在programmers exchange site。