在搜索应用程序中,我需要跟踪文件及其位置。目前我正在使用数据库表,但由于每次需要检索此类数据时都必须连接到数据库,这显然效率不高。有没有一种方法可以将表加载到内存并使用它?我不需要在内存中修改它。
谢谢!
答案 0 :(得分:2)
如果您只想将一个表检索到内存中,则可以使用一个SELECT语句执行此操作。您可以从ResultSet构建类似Map的集合。之后,从Map获取您想要的信息。
答案 1 :(得分:1)
您可以填充具有内存模式的几个Java数据库中的任何一个,例如HSQLDB,Derby或H2。您还可以查看SQLite,它不是专门的Java,而是具有this Q&A here on StackOverflow中所述的各种Java连接器。
但是,每次需要查询时都不必连接到数据库,可以使用connection pool来管理可以重用的一组连接。由于主要的延迟通常是建立连接,这可能导致每次查询开销很多。
答案 2 :(得分:1)
您还可以使用其中一种缓存产品,如Ehcache,Memcache,Coherence等。我对使用Ehache有一些了解。配置Hibernate以缓存特定查询或实体对象或POJO。具有相同标准的所有后续搜索将从缓存中获取。
我相信其他产品也提供类似的功能。
答案 3 :(得分:0)
你的句子“我不需要在内存中修改它。”并不反映您的问题的标题,您显然希望在使用后修改提交数据。
如果您只想加速应用,为什么不将数据存储在某种变量中呢?根据您的开发工具,它可能是某种会话变量。