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.
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. –