1
IMPLEMENTAZIONE
TECNOLOGIE:HIBERNATE & JAVA RMI
TECNOLOGIE – HIBERNATE & JAVA RMI
2
Hibernate: Object-Relational Mapping
• piattaforma middleware open source per lo sviluppo di
applicazioni Java che fornisce un servizio di Objectrelational mapping (ORM)
•
•
Come si intuisce dal nome consiste nella tecnica di mappare gli
oggetti Java su di un database relazionale
In questo modo è possibile, tramite dei semplici metodi invocabili
dai nostri oggetti, eseguire le query più diffuse
TECNOLOGIE – HIBERNATE & JAVA RMI
3
Hibernate: Object-Relational Mapping
• Per il funzionamento necessita di:
• Un R-DBMS installato con almeno un database creato
• Importare nel progetto le librerie di Hibernate
• Un file .cfg.xml che contiene le impostazioni e la configurazione
del DBMS
• Dei file .hbm.xml per ogni entità del diagramma E-R
•
•
Una ORMpersistable Java class per ogni entity dell’E-R
•
•
Permettono di associare le tabelle alle classi
Dunque per ogni file hbm.xml
Una classe di utility per la gestione delle sessioni
4
TECNOLOGIE – HIBERNATE & JAVA RMI
Hibernate: Object-Relational Mapping
configurazione
del DBMS
utility per la gestione
delle sessioni File hbm.xml
ORMpersistable java class
TECNOLOGIE – HIBERNATE & JAVA RMI
5
Hibernate: Object-Relational Mapping
• Nel corso della It2 si è fatto uso del Wizard di Visual
Paradigm per generare il codice necessario al
funzionamento di Hibernate
•
•
Nello specifico si è ricorso alla Persistent API «Static Method»
Tuttavia la generazione automatica comportava diverse limitazioni
•
•
•
Sporcava le classi con una serie di metodi statici di classe
Legava le classi alla problematica della distribuzione (queste ultime
dovevano estendere “Remote”)
Ha creato problemi nei Vincoli di Integrità Referenziale in tutti i casi in
cui veniva implementato il costrutto o-o della composizione
TECNOLOGIE – HIBERNATE & JAVA RMI
6
Hibernate: Object-Relational Mapping
• Pertanto si è adottata una strategia differente nella It3
• Configurazione manuale dei file xml
• Implementazione manuale sulla falsariga della Persistent API
«Data Access Object» di Visual Paradigm
•
Ogni ORMPersistable entity class è affiancata dal suo «DTO»(Data
Transfer Object) che incapsula in esso la entity stessa
•
•
Tutto questo anche per motivi legati alla distribuzione, come vedremo
A differenza del pattern DAO generato da VP, abbiamo deciso di
ospitare i metodi «Save()», «Delete()», etc… in opportune classi
controller (grasp High cohesion)
TECNOLOGIE – HIBERNATE & JAVA RMI
7
Hibernate: Object-Relational Mapping
• Nel corso della It3 si è fatto utilizzo dei “Criteria”
Hibernate offre una API
di interrogazione per
criteri intuitiva ed
estensibile.
Scarica

ing_sw_presentazione 9 implementazione