c) Ultimo passo, il database

Utilizzando Java abbiamo accesso anche a tutte le librerie di astrazione per l'accesso ai database, siano questi RDBMS o NoSQL. Nel caso di GAE abbiamo a disposizione il Datastore, un database NoSQL distribuito, basato su BigTable, sulla rete cloud di Google.

Vi consiglio di cercare di vedere e capire questo video perchè spiega, nei dettagli, il funzionamento di BigTable e del Datastore.

Google I/O 2008 - App Engine Datastore Under the Covers



Inoltre insieme al GPE ci viene messo a disposizione un componente simile ad Hibernate, Datanucleus, che ci consente di utilizzare JPA, con alcune restrizioni.

A questo punto non ci manca che "mappare" oggetti Java con "righe" di una tabella del database. Le classi Java così utilizzate sono dette facenti parte del Modello(model) dell'applicazione. Nel nostro caso il model rappresenterà i messaggi inviati.

Qui trovate nel dettaglio le istruzioni per l'utilizzo di JPA su GAE. Notare che c'è un file da aggiungere a mano al progetto come scritto nel secondo punto qui. Il file persistence.xml, che trovate in allegato, va inserito dentro src/META-INF, come da screen.



In allegato trovate il progetto con le seguenti modifiche:
  • Definizione del model, package it.ssti.model e classe MessageModel.java
  • Modifica della nostra servlet, controller, in modo tale che salvi i messaggi sul Datastore, package it.ssti.controller e classe MessageController.java
  • Modifica della nostra JSP, view, in modo tale che recuperi tutti i messaggi e li mostri, organizzazione della JSP sotto la cartella view(solo per un fatto di ordine).
  • E' possibile che un messaggio non venga visualizzato subito. Usando l'ambiente di sviluppo locale il Datastore è lento, aggiornando la pagina verrà visualizzato.
  • Potete comunque controllare che i messaggi siano stati salvati dalla console di gestione locale all'indirizzo http://localhost:8888/_ah/admin/.
NOTA:
A questo punto abbiamo sperimentato, senza parlarne mai direttamente, il pattern MVC, Model View Controller. E' uno dei pattern più utilizzati per lo sviluppo di applicazioni web.
ċ
GuestbookMVC.zip
(6k)
Alessandro Aglietti,
5 feb 2012, 04:38
ċ
persistence.xml
(1k)
Alessandro Aglietti,
5 feb 2012, 04:29
Comments