将数据存储在内存中

我在数据库中有"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将从TABLE A获得1百万条记录TABLE A ,使用这些记录映射ClassA并开始填充ClassA的对象并将它们保存在Vector或ArrayList ,因为您可能已经知道我的Vector/ArrayList现在将包含1百万个对象,每个对象代表一个record/tupple in "TableA"

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

您必须使用Java缓存系统 ( 请参阅此处 )或Ehcache ( 请参阅此处 )将数据存储在缓存中, Spring中的 Inversion of Control在某种程度上也有所帮助,但不确定它是否有助于在堆中存储100万个数据,如堆记忆力有限。

如果我找对你,看起来你需要缓存。 我建议在这里看看EHcache或Infinispan 。

希望这可以帮助

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

你可能想看一下ehcache

要么,

既然你有大型对象,你可以看一下实现Object Repository,比如noDB