110 likes | 237 Views
IMPLEMENTAZIONE. TECNOLOGIE:HIBERNATE & JAVA RMI. Tecnologie – hibernate & java rmi. Hibernate : Object- Relational Mapping. piattaforma middleware open source che fornisce un servizio di Object- R elational mapping (ORM ) per lo sviluppo di applicazioni Java
E N D
IMPLEMENTAZIONE TECNOLOGIE:HIBERNATE & JAVA RMI
Tecnologie – hibernate & java rmi Hibernate: Object-RelationalMapping piattaforma middleware open source che fornisce un servizio di Object-Relationalmapping (ORM) per lo sviluppo di applicazioni Java Consiste di una tecnica per la mappatura della struttura di oggetti Java su di un database relazionale Fornisce un’interfaccia Object-Oriented per la persistenza degli oggetti, nascondendo la logica relazionale sottostante
Tecnologie – hibernate & java rmi Hibernate: Object-RelationalMapping Architettura Middleware L’applicazione costruisce la sua SessionFactory La SessionFactory costruisce e gestisce Sessioni, oggetti leggeri facade verso gli strati sottostanti La Sessione costruisce Transazioni e gli oggetti necessari al querying
Tecnologie – hibernate & java rmi Hibernate: Object-RelationalMapping Fase di setup: Installazione R-DBMS, definizione DB e utente con privilegi Inclusione delle librerie Hibernate (rel. 4.1) Definizione file hibernate.cfg.xml con i parametri di connessione al DBMS e la lista dei files di mapping Definizione file .hbm.xml per ogni classe persistente(best practice) Definisce la mappatura effettiva attributo-colonna Una classe di utility per l’inizializzazione della SessionFactory Costruisce l’oggetto SessionFactory composto Dichiara un’interfaccia facade per il sistema verso persistenza
Tecnologie – hibernate & java rmi Hibernate: Object-RelationalMapping XML che definisce i parametri per la costruzione della SessionFactory
Tecnologie – hibernate & java rmi Hibernate: Object-RelationalMapping Mappatura della classe POJO su tabella relazionale
Tecnologie – hibernate & java rmi Hibernate: Object-RelationalMapping Mappatura dell’ereditarietà di tipo “Table Per Class” Un’unica tabella per mappare l’intera gerarchia di classi I campi della tabella mappano l’unione degli attributi delle classi della gerarchia Un campo Discriminator determina la classe di appartenenza dell’oggetto mappato nel relativo record
Tecnologie – hibernate & java rmi Hibernate: Object-RelationalMapping La classe FacadePersistence Classe Singleton per la visibilità Costruisce la SessionFactoryall’internodelcostruttore, richiamato al primo accesso al metodogetInstance() Dichiaraun’intercacciaFacade per la nostraapplicazione verso le principalifunzionalitàdellostrato di persistenza Puòessereinterpretata come una classe Adapter, in quanto rappresenta un livello di indirezionerispettoall’interfacciadellivellosottostante
Tecnologie – hibernate & java rmi Hibernate: Object-RelationalMapping Features adottate: HQL Linguaggio di interrogazione ispirato ad SQL Classi anziché Tabelle Oggetti anziché Campi
Tecnologie – hibernate & java rmi Hibernate: Object-RelationalMapping Features adottate: Queries polimorfiche “from java.lang.Object” Recupera tutti gli oggetti della classe Object e della sue sottoclassi, presenti in persistenza. Abbiamo quindi tutti gli oggetti nel DB “from model.Noleggio” Recupera gli oggetti delle classi Noleggio e Prenotazione “from model.Noleggiowhere Discriminator=‘Prenotazione’” Recupera i soli oggetti della classe Prenotazione
Tecnologie – hibernate & java rmi Hibernate: Object-RelationalMapping Features adottate: Queries by Criteria Hibernate offre una API di interrogazione integralmente basata su paradigma ad oggetti