5

私は、約(100万)のレコードを持つ"TABLE A"3つの列を含むデータベースを持っています。"COL 1" , "COL 2" and "COL 3"1000000

このテーブルに対して、3 つのインスタンス変数をPOJO使用して単純なレッツ エイジをマッピングし、そこでもメソッドを定義しました。"ClassA""var1" , "var2" , "var3"set()get()

私のアプリケーションには単純な JSP、サーブレット、および POJO が含まれており、派手なフレームワークやその他のテクノロジはありません。

私が実際に望んでいるのは、初めてアプリケーションがアプリケーションサーバーにデプロイされ、最初のリクエストが受信されたとき、そのリクエストに対してのみ (1 回だけ)、サーブレットが から 100 万レコードを取得することですTABLE A。これらのレコードで ClassA をマップし、 のオブジェクトへの入力を開始し、それらClassAを Vector または に保持しArrayListます。Vector/ArrayListrecord/tupple"TableA"

OK、ここで本当の難しい部分に来ます。これVector/ArrayListstored/persisted/addedアプリケーションコンテキスト、VM、またはその他のメモリストレージの場所 (実際にはわかりません) にしたいので、JSPpages/Servletsがオブジェクトにアクセスするたびにデータを取得し、毎回データベースにアクセスしないことを記憶しています。

4

3 に答える 3

2

データをキャッシュに保存するには、Java Caching System (こちらを参照) またはEhcache (こちらを参照)を使用する必要があります。Springの制御の反転も何らかの方法で役立ちますが、ヒープとして 100 万個のデータをヒープに格納するのに役立つかどうかはわかりません。メモリは限られています。

于 2013-01-14T05:58:38.980 に答える
1

正しければ、キャッシュが必要なようです。ここでEHcacheまたはInfinispanを確認することをお勧めします。

お役に立てれば

于 2013-01-14T06:00:35.597 に答える
0

オブジェクトをキャッシュする方法を探していると思います。

ehcacheを見たいと思うかもしれません

また、

大きなオブジェクトがあるので、 noDBのようなオブジェクトリポジトリの実装を見ることができます

于 2013-01-14T06:04:34.267 に答える