【发布时间】:2013-01-14 05:53:57
【问题描述】:
我在数据库中有 "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 或 ArrayList 中,您可能已经理解我的 Vector/ArrayList 现在将包含 100 万个对象每个对象代表 record/tupple 中的 "TableA" 。
好的,现在进入真正困难的部分,我希望 Vector/ArrayList 成为应用程序上下文或 VM 或任何其他内存存储位置(实际上我不知道)的 stored/persisted/added,所以每次我的 JSP pages/Servlets 访问内存中的对象以获取数据而不是每次都访问数据库。
【问题讨论】:
-
为什么不使用内存数据库,例如 hsqldb,它将充当缓存,您可以使用自己喜欢的 SQL 语句 - 在应用程序初始化时填充它。其他选择是使用缓存解决方案,例如 JBoss infinispan。