1

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

谢谢你!

4

4 回答 4

2

如果您只想将一张表检索到内存中,您可以使用单个 SELECT 语句来完成。您可以从 ResultSet 构建一个像 Map 这样的集合。之后从地图中获取您想要的信息。

于 2011-06-03T08:11:52.063 回答
1

您可以填充具有内存模式的几个 Java 数据库中的任何一个,例如HSQLDBDerbyH2。您可能还会查看SQLite,它不是专门的 Java,但具有各种 Java 连接器,如StackOverflow 上的问答中所述。

但是您不必每次需要查询时都连接到数据库,您可以使用连接池来管理一组可以重复使用的连接。由于通常主要的延迟是建立连接,这可能会导致相当多的每次查询开销。

于 2011-06-03T08:02:01.047 回答
1

您还可以使用 Ehcache、Memcache、Coherence 等许多缓存产品之一。我对使用 Ehache 有一些了解。配置 Hibernate 以缓存特定查询或实体对象或 POJO。所有具有相同条件的后续搜索都将从缓存中获取。

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

于 2011-06-03T08:37:03.037 回答
0

你的句子“我不需要在内存中修改它。” 不反映您的问题的标题,您显然想在使用后修改提交回您的数据。

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

于 2011-06-03T08:13:28.630 回答