2013-01-14 15 views
5

Ho "TABLE A" nel database che contiene 3 colonne "COL 1" , "COL 2" and "COL 3" con circa 1000000 (1 milione) di record.Memorizzazione dei dati nella memoria

In questa tabella ho mappato un semplice POJO diciamo "ClassA" con 3 variabili istanza "var1" , "var2" , "var3" e anche ivi definiti set() e get() metodi.

La mia applicazione contiene semplici JSP, Servlet e POJO senza framework di fantasia e senza altre tecnologie.

Quello che voglio veramente è che quando la prima volta la mia applicazione verrà distribuita su Application Server e la prima richiesta che riceverà, solo per quella richiesta (solo 1 volta) il mio servlet otterrà il 1 Milioni di record da TABLE A, esegue il mapping di ClassA con questi record e inizia a popolare gli oggetti per ClassA e li mantiene in un vettore o in uno ArrayList, poiché potresti aver inteso che il mio Vector/ArrayList conterrà ora 1 milione di oggetti con ciascun oggetto che rappresenta un record/tupple nel "TableA".

OK, ora giunta alla parte reale e difficile, voglio che questo Vector/ArrayList sia stored/persisted/added al contesto di applicazione o al VM o per qualsiasi altra posizione di memorizzazione di memoria (che in realtà non lo so), in modo che ogni volta il mio JSP pages/Servlets sta accedendo all'oggetto in memoria di ottenere dati e non di colpire il database ogni volta.

+0

perché non utilizzare un database in memoria come HSQLDB , che agirà come una cache ed è possibile utilizzare le tue istruzioni SQL preferite - popolarlo sul tempo di inizializzazione dell'applicazione. Un'altra opzione è usare la soluzione cache come JBoss infinispan. –

risposta

2

devi usare Java Caching sistema (see here) o EHCache (see here) per memorizzare i dati nella cache, Inversion of Control in primavera aiuta anche, in qualche modo, ma non so se sarebbe d'aiuto per memorizzare 1 milione di dati nell'heap, poiché la memoria dell'heap è limitata.

1

Sembra che tu abbia bisogno del caching, se ti capisco bene. Vorrei raccomandare di dare un'occhiata a EHcache o Infinispan qui.

Spero che questo aiuti

0

Penso che stai cercando un modo per memorizzare nella cache i tuoi oggetti.

Si consiglia di guardare ehcache

o,

poiché si dispone di oggetti di grandi dimensioni si può guardare ad attuare Object Repository come, noDB