2011-06-03 73 views
1

在搜索应用程序中,我需要跟踪文件及其位置。目前我正在为此使用数据库表,但由于每次需要检索此类数据时都必须连接到数据库,因此这显然效率不高。有没有一种方法可以将表格加载到内存中并使用它?当它在内存中时我不需要修改它。将数据库表加载到要使用的内存

谢谢!

+0

我不太明白。你的意思是我必须努力工作吗? – Izza 2011-06-03 15:05:31

回答

2

如果您只想将一张表检索到内存中,则可以使用单个SELECT语句执行此操作。您可以从ResultSet构建一个像Map一样的集合。之后,从地图获取所需的信息。

+0

+1。我也认为这是最好的方式,因为我不需要在记忆中修改它。 – Izza 2011-06-03 08:52:54

+1

即使您确实需要对其进行修改,您也可以更新表并对内存中的副本进行相同的更新。 – 2011-06-03 15:11:28

1

您可以填充那些有内存模式的几个Java数据库中的任何一个,如HSQLDB,DerbyH2。你也可以看看SQLite,它不是特别的Java,但有this Q&A here on StackOverflow中描述的各种Java连接器。您可以使用connection pool来管理一组您可以重复使用的连接。由于通常主延迟是建立连接,这可能会导致相当多的每个查询开销。

0

您的句子“我不需要在记忆中修改它。”并不反映您的问题的标题,您显然希望在使用该数据后修改提交数据。

如果您只是想加快您的应用程序,为什么不将数据存储在某种变量中?根据你的开发工具,它可能是某种会话变量。

+0

是的,我现在纠正了。在桌子上时,我不需要修改它。对不起,错误! – Izza 2011-06-03 08:51:36

1

您也可以使用Ehcache,Memcache,Coherence等许多缓存产品。我有一些使用Ehache的知识。配置Hibernate来缓存特定的查询或实体对象或POJO。具有相同条件的所有后续搜索将从缓存中提取。

我相信其他产品也提供类似的功能。

相关问题