5

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

针对这张表,我已经映射了一个简单的例子POJO,比如"ClassA"3 个实例变量,并"var1" , "var2" , "var3"在那里定义了方法。set()get()

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

我真正想要的是,当我的应用程序第一次部署在应用程序服务器上并且它收到的第一个请求时,仅针对该请求(仅 1 次),我的 Servlet 将从中获取 100 万条记录TABLE A,用这些记录映射 ClassA 并开始填充对象ClassA并将它们保存在 Vector 或 anArrayList中,正如您可能已经理解的那样,我现在将包含 100 万个对象,Vector/ArrayList每个对象代表record/tupple."TableA"

好的,现在进入真正困难的部分,我希望这Vector/ArrayListstored/persisted/added应用程序上下文或虚拟机或任何其他内存存储位置(实际上我不知道),以便每次我的 JSPpages/Servlets访问对象记住获取数据而不是每次都访问数据库。

4

3 回答 3

2

您必须使用Java 缓存系统请参阅此处)或Ehcache请参阅此处)将数据存储在缓存中,Spring中的控制反转在某种程度上也有帮助,但不确定是否有助于将 100 万个数据存储在堆中,如堆内存是有限的。

于 2013-01-14T05:58:38.980 回答
1

如果我说得对,您似乎需要缓存。我建议在这里查看EHcacheInfinispan

希望这可以帮助

于 2013-01-14T06:00:35.597 回答
0

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

你可能想看看ehcache

或者,

因为你有大对象,你可以看看实现对象存储库,比如 noDB

于 2013-01-14T06:04:34.267 回答