将数据存储在内存中

时间:2013-01-14 05:53:57

标签: java jsp servlets pojo

我在数据库中有"TABLE A",其中包含3列"COL 1" , "COL 2" and "COL 3",大约有1000000(1百万)条记录。

针对此表,我已经映射了一个简单的POJO,让我们说"ClassA"包含3个实例变量"var1" , "var2" , "var3",并定义了set()get()方法。

我的应用程序包含简单的JSP,Servlet和POJO,没有花哨的框架,也没有其他技术。

我真正想要的是,当我的应用程序第一次部署在Application Server上并且它收到的第一个请求时,只有那个请求(只有一次),我的Servlet将获得100万来自TABLE A的记录,使用这些记录映射ClassA并开始填充ClassA的对象,并将它们保存在Vector或ArrayList中,因为您可能已了解我的Vector/ArrayList现在将包含1百万个对象,每个对象代表record/tupple中的"TableA"

好的,现在来到真实和困难的部分,我希望这个Vector/ArrayListstored/persisted/added到应用程序上下文或VM或任何其他内存存储位置(实际上我不是知道),以便每次我的JSP pages/Servlets访问内存中的对象时获取数据而不是每次都访问数据库。

3 个答案:

答案 0 :(得分:2)

您必须使用 Java缓存系统see here)或 Ehcache see here)将数据存储在缓存中,反转 Spring 中的还有一些帮助但不确定它是否有助于在堆中存储100万个数据,因为堆内存有限。

答案 1 :(得分:1)

如果我找对你,看起来你需要缓存。 我建议您在这里查看EHcacheInfinispan

希望这有帮助

答案 2 :(得分:0)

我认为您正在寻找缓存对象的方法。

您可能需要查看ehcache

,或者

因为您有大型对象,所以您可以查看实现对象存储库,如noDB