IMPLEMENTAZIONE TECNOLOGIE:HIBERNATE & JAVA RMI
Hibernate: Object-Relational Mapping Tecnologie – hibernate & java rmi Hibernate: Object-Relational Mapping piattaforma middleware open source per lo sviluppo di applicazioni Java che fornisce un servizio di Object-relational 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
Hibernate: Object-Relational Mapping Tecnologie – hibernate & java rmi 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 Permettono di associare le tabelle alle classi Una ORMpersistable Java class per ogni entity dell’E-R Dunque per ogni file hbm.xml Una classe di utility per la gestione delle sessioni
Hibernate: Object-Relational Mapping Tecnologie – hibernate & java rmi Hibernate: Object-Relational Mapping configurazione del DBMS utility per la gestione delle sessioni ORMpersistable java class File hbm.xml
Hibernate: Object-Relational Mapping Tecnologie – hibernate & java rmi 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
Hibernate: Object-Relational Mapping Tecnologie – hibernate & java rmi 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)
Hibernate: Object-Relational Mapping Tecnologie – hibernate & java rmi Hibernate: Object-Relational Mapping Nel corso della It3 si è fatto utilizzo dei “Criteria” Hibernate offre una API di interrogazione per criteri intuitiva ed estensibile.