从数据库加载多个(很多)对象,将其保存在ehcache中并使用主键

时间:2017-03-21 04:05:37

标签: java oracle ehcache

我必须处理一个xml文件,为此我需要使用它来自单个表的主键来解决约4k个对象。我正在使用EhCache。我的问题如下:

1)如果我基于Id逐行查询并将其保存在Cache中,则需要花费大量时间。我可以在初始时间查询并将整个表保存在EHCache中,并可以在后续处理中使用主键查询

2)我不想使用查询缓存。因为我无法一次加载4k个对象并将其循环以找到正确的对象。

我正在寻找最佳解决方案,因为我的流程大约需要2个小时(它还涉及其他处理)

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

您可以阅读整个表并将其存储在Map<primary-key, table-row>中,以减少数据库连接的开销。

我认为TreeMap可能是最佳选择,它可以更快地搜索元素。

Ehcache非常适合处理并发,但如果您使用单个进程读取xml,则甚至不需要它(只需将Map存储在内存中)。