2013-01-14 12 views
5

"COL 1" , "COL 2" and "COL 3"1000000(100万)のレコードを3列含むデータベースに"TABLE A"があります。このテーブルに対してデータをメモリに保存する

私は、単純なPOJOは3つのインスタンス変数と"ClassA"を言うことができます"var1" , "var2" , "var3"ともset()get()方法が定義されてマッピングされています。

私のアプリケーションには、単純なJSP、サーブレット、POJOがあり、ファンシーフレームワークはなく、他の技術はありません。

私が実際に望むのは、初めてアプリケーションをApplication Serverにデプロイするとき、最初のリクエストが受信されると、そのリクエスト(1回のみ)でサーブレットが1 のミリオンレコードは、ClassAをこれらのレコードにマップし、ClassAのオブジェクトを作成し、VectorまたはArrayListのままにしておきます。Vector/ArrayListには、1オブジェクトが1百万個含まれています。record/tupple"TableA"

OK、今度は本当に難しい部分に来て、このVector/ArrayListをアプリケーションコンテキスト、VM、または他のメモリ格納場所(実際にはわからない)にstored/persisted/addedにして、毎回私のJSP pages/Servletsは、データを取得し、毎回データベースに当たらないことを記憶するオブジェクトにアクセスしています。

+0

noDBはなぜ、このようなHSQLDBとして、インメモリデータベースを使用しない

あなたがオブジェクトリポジトリなどを実装する時に見ることができる大きなオブジェクトを持っているので

あなたはehcache

かを見てみたいことがあり、これはキャッシュとして機能し、お気に入りのSQL文を使用することができます。アプリケーションの初期化時にそのSQL文を読み込むことができます。他のオプションは、JBoss infinispanなどのキャッシュソリューションを使用することです。 –

答えて

2

あなたがも何らかの方法で役立ちますが、それは助けになるかどうかわからないで(see here)はキャッシュにデータを格納するには、コントロールの、反転Javaのキャッシュシステムsee here)またはEhcacheのを使用する必要がありますヒープメモリが制限されているため、100万のデータをヒープに格納します。

1

キャッシュが必要なようです。 EHcacheまたはInfinispanをここでご覧になることをお勧めします。

希望します。

0

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

関連する問題