STUDIO DI HIBERNATE ATTRAVERSO I COSTRUTTI DEL MODELLO RELAZIONALE

Slides:



Advertisements
Presentazioni simili
JPA Overview della tecnologia. Java Persistence Architecture Definita nella JSR-220 EJB 3.0 ( Tentativo di unificare EJB2.1 con.
Advertisements

Query OQL e XQUERY a confronto
Progetto e realizzazione di un wrapper XML Schema per il sistema MOMIS
Università degli studi di Modena e Reggio Emilia
Re-engineering del wrapper XML Schema per il sistema MOMIS
Serializzazione di oggetti in formato XML nellambito del sistema MOMIS Davide Lenzi Chiar.mo Prof. Sonia Bergamaschi Chiar.mo Prof. Michele.
Università degli Studi di Modena e Reggio Emilia
UNIVERSITA DEGLI STUDI DI MODENA E REGGIO EMILIA Facoltà di Ingegneria – Sede di Modena Corso di Laurea in Ingegneria Informatica MOMIS: servizi di wrapping.
UNIVERSITA DEGLI STUDI DI MODENA E REGGIO EMILIA Facoltà di Ingegneria – Sede di Modena Corso di Laurea in Ingegneria Informatica Progetto e realizzazione.
Il componente Query Manager del sistema MOMIS: testing ed analisi delle performance UNIVERSITA DEGLI STUDI DI MODENA E REGGIO EMILIA _____________________________________________________.
1 Il Linguaggio SQL Il Linguaggio SQL Prof. Lorenzo Vita, Ing. Luigi Testa.
Scuola di Ingegneria Industriale e dell'Informazione
D.I.Me.Ca. – D.I.Me.Ca. – Università degli Studi di Cagliari Facoltà di Ingegneria Dipartimento di Ingegneria.
Mapping Database Atsilo
EFFETTI DELLA NORADRENALINA SULLO STROKE VOLUME MEDIANTE MONITORAGGIO CON DOPPLER ESOFAGEO UNIVERSITA' DEGLI STUDI DI UDINE FACOLTA' DI MEDICINA E CHIRURGIA.
POLITECNICO DI MILANO FACOLTA’ DI INGEGNERIA SEDE DI CREMONA TESI DI DIPLOMA IN INGEGNERIA INFORMATICA RELATOREAUTORI Prof. Vittorio TrecordiDemicheli.
Università degli Studi Di Parma Corso di Laurea in Infermieristica Anno Accademico 2012/2013 Risultati della formazione di operatori socio-sanitari di.
Dipartimento di Scienze Fisiche, Informatiche e Naturali Corso di Laurea in Informatica Progetto e sviluppo di un applicativo web per la gestione ed archiviazione.
Ereditarietà Uno dei principi della programmazione orientata agli oggetti (OOP) è il riuso Le classi dovrebbero essere progettate come componenti riutilizzabili.
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Università degli studi di Genova
Università degli Studi di Modena e Reggio Emilia
Java World Introduzione.
La presentazione delle Tesi nel corso della seduta di Laurea deve rispettare il modello di Template qui di seguito proposto all'interno del quale il candidato.
STUDIO DI HIBERNATE ATTRAVERSO I COSTRUTTI DEL MODELLO RELAZIONALE
Storia e modelli del giornalismo
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Uso di Unity per la Creazione di Giochi Educativi
Università degli studi di Cassino e del Lazio Meridionale Corso di Laurea Magistrale in Management a.a. 2016/2017 Marketing avanzato Prof. Marcello Sansone.
di Basi di Dati: Overview
Università Politecnica delle Marche – Facoltà di Medicina e Chirurgia
UNIVERSITÀ DEGLI STUDI DI MODENA E REGGIO EMILIA Dipartimento di Scienze Fisiche, Informatiche e Matematiche Corso di Laure in Informatica Relatore: Riccardo.
Elaborato/Tesi di Laurea Francesco Saverio Capaldo
EasyGraph Dynamic web-based dashboard
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
TITOLO DELL’ELABORATO
Uso di Unity per la Creazione di Giochi Educativi
Condizioni decisionali
Università degli Studi di Ferrara
UNIVERSITA’ DEGLI STUDI DI PALERMO SCUOLA POLITECNICA Dipartimento di Ingegneria Civile, Ambientale, Aerospaziale, dei Materiali (DICAM) Corso di Laurea.
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Università Politecnica delle Marche – Facoltà di Medicina e Chirurgia
Titolare del corso Prof. Giorgio Buonanno
Uso di Unity per la Creazione di Giochi Educativi
1 o 2 immagini inerenti l’argomento di tesi (le stesse della sintesi)
PEDAGOGIA SPERIMENTALE
MOTORI A COMBUSTIONE INTERNA Prof. M. Migliaccio
Corso Di Laurea Magistrale In Ingegneria Informatica - Anno accademico
Qui il titolo del vostro elaborato Qui il vostro Nome e Cognome
Modulo di Elementi di Trasmissione del Calore Conduzione – Transitorio
Corso Java Introduzione.
Realizzazione di un robot d’assistenza alla gente
GESTIONE INFORMATIZZATA ATTREZZATURE E MATERIALI GASL
Corso Java Cicli e Array.
Corso di Laurea Triennale in Ingegneria Elettronica e Informatica
Modulo di Elementi di Trasmissione del Calore Conduzione – Transitorio
TITOLO TITOLO TITOLO TITOLO TITOLO TITOLO TITOLO
Composizioni di classi
Corso di Laurea Specialistica/Magistrale in Farmacia
UNIVERSITÀ DEGLI STUDI DI MODENA E REGGIO EMILIA Dipartimento di Scienze Fisiche, Informatiche e Matematiche Corso di Laurea in Informatica PROGETTO E.
Condizioni decisionali
Dipartimento di Scienze Fisiche, Informatiche e Matematiche Corso di Laurea in Informatica Progettazione e implementazione di un applicativo di raccolta.
Java Costruttore di copia e GetStatus.
Titolare del corso Prof. Giorgio Buonanno
Condizioni decisionali
Java Introduzione.
UML Diagramma statico di una classe
Corso di laurea in Infermieristica
Corso di laurea in Infermieristica
Corso di Laurea in Farmacia Dipartimento di Scienze del Farmaco
Transcript della presentazione:

STUDIO DI HIBERNATE ATTRAVERSO I COSTRUTTI DEL MODELLO RELAZIONALE Università degli Studi di Padova Facoltà di Ingegneria Corso di Laurea Triennale in Ingegneria Informatica Tesi di Laurea STUDIO DI HIBERNATE ATTRAVERSO I COSTRUTTI DEL MODELLO RELAZIONALE Relatore: Prof. Giorgio Maria Di Nunzio 26 Luglio 2012 Laureando: Marco Carraro Anno Accademico 2011/2012

Problema: Letteratura vasta da Java a relazionale ma non viceversa Università degli studi di Padova Tesi di Laurea Studio di Hibernate attraverso i costrutti del modello relazionale HIBERNATE Problema: Letteratura vasta da Java a relazionale ma non viceversa 26 Luglio 2012 Marco Carraro

Università degli studi di Padova Tesi di Laurea Studio di Hibernate attraverso i costrutti del modello relazionale Obiettivi della tesi Fornire documentazione sull’implementazione di schemi relazionali con Hibernate Analizzare vantaggi introdotti da Hibernate ed eventuali incompatibilità con alcuni schemi relazionali 26 Luglio 2012 Marco Carraro

Classi Java rappresentanti i concetti (POJO) Università degli studi di Padova Tesi di Laurea Studio di Hibernate attraverso i costrutti del modello relazionale Di cosa ha bisogno Hibernate per capire come realizzare un modello relazionale?? Classi Java rappresentanti i concetti (POJO) Files di mappatura (in XML) solitamente uno per classe Ritagliare le immagini??? 26 Luglio 2012 Marco Carraro

Struttura tipico file di mappatura: <!Doctype….> Università degli studi di Padova Tesi di Laurea Studio di Hibernate attraverso i costrutti del modello relazionale Struttura tipico file di mappatura: <!Doctype….> <hibernate-mapping> <class> <id>Def id</id> <param name=“attr” not-null=“true” unique=“true”/> <one-to-one …/> <one-to-many …/> <many-to-one …/> <many-to-many …/> </class> </hibernate-mapping> Ritagliare le immagini??? 26 Luglio 2012 Marco Carraro

ESEMPIO: ASSOCIAZIONE UNO A MOLTI CON ATTRIBUTI COMUNI Università degli studi di Padova Tesi di Laurea Studio di Hibernate attraverso i costrutti del modello relazionale ESEMPIO: ASSOCIAZIONE UNO A MOLTI CON ATTRIBUTI COMUNI TRADUZIONE IN SCHEMA RELAZIONALE SCELTA: Ritagliare le immagini??? 26 Luglio 2012 Marco Carraro

3 file XML di mappatura - Item Università degli studi di Padova Tesi di Laurea Studio di Hibernate attraverso i costrutti del modello relazionale Necessari sei file: - User 3 classi Java - Item - Buyer 3 file XML di mappatura - Item Ritagliare le immagini??? 26 Luglio 2012 Marco Carraro

User.java => usa Set USER.JAVA FRAMMENTO USER.HBM.XML Università degli studi di Padova Tesi di Laurea Studio di Hibernate attraverso i costrutti del modello relazionale User.java => usa Set USER.JAVA FRAMMENTO USER.HBM.XML public class User { private Long id; private String login; private java.util.Set<Buyer> items= new java.util.HashSet<Buyer>(); // constructors setter and getter } … <property name=“login” not-null=“true”/> <set name="items" table="BUYER"> <key column="BUYER_ID"/> <one-to-many class="Buyer"/> </set> Ritagliare le immagini??? 26 Luglio 2012 Marco Carraro

Item.java => contiene oggetto di tipo User Università degli studi di Padova Tesi di Laurea Studio di Hibernate attraverso i costrutti del modello relazionale Item.java => contiene oggetto di tipo User ITEM.JAVA FRAMMENTO ITEM.HBM.XML public class Item { private Long id; private String name; private String description; private User buyer=null; //constructors, setter and getter } … <join table="BUYER" inverse="true"> <key column="ITEM_ID" unique="true"/> <many-to-one name="buyer" class="User" column="BUYER_ID"/> </join> Ritagliare le immagini??? 26 Luglio 2012 Marco Carraro

FRAMMENTO BUYER.HBM.XML Università degli studi di Padova Tesi di Laurea Studio di Hibernate attraverso i costrutti del modello relazionale Buyer.java => classe intermedia necessaria per raccogliere attributi comuni BUYER.JAVA FRAMMENTO BUYER.HBM.XML <class name="Buyer" table="BUYER" mutable="false"> <composite-id name="id" class="Buyer$Id"> <key-property name="itemId" access="field" column="ITEM_ID"/> <key-property name="userId" access="field" column="BUYER_ID"/> </composite-id> <property name="amount" column="AMOUNT"/ > <many-to-one name="user” not-null="true" insert="false" update="false"/> <many-to-one name="item” not-null="true" insert="false" update="false"/> </class> public class Buyer { public static class Id{ private long itemId; private long userId; //constructors, getter and setter } private Id id=new Id(); private User user; private Item item; private double amount; Ritagliare le immagini??? 26 Luglio 2012 Marco Carraro

NOTA: Su Item della relazione BUYER c’è un vincolo unique Università degli studi di Padova Tesi di Laurea Studio di Hibernate attraverso i costrutti del modello relazionale Problema => schema relazionale ottenuto diverso da quello di partenza Schema voluto: Schema ottenuto: Ritagliare le immagini??? NOTA: Su Item della relazione BUYER c’è un vincolo unique 26 Luglio 2012 Marco Carraro

Notevole riduzione codice necessario per persistenza Università degli studi di Padova Tesi di Laurea Studio di Hibernate attraverso i costrutti del modello relazionale CONCLUSIONI - 1 Vantaggi introdotti: Notevole riduzione codice necessario per persistenza Elevato riutilizzo codice tra applicazioni diverse => classi più leggibili Miglior controllo delle performance con DataBase Connection Pool Ritagliare le immagini??? 26 Luglio 2012 Marco Carraro

Introduzione di latenza rispetto alla soluzione con JDBC Università degli studi di Padova Tesi di Laurea Studio di Hibernate attraverso i costrutti del modello relazionale CONCLUSIONI - 2 Svantaggi: Introduzione di latenza rispetto alla soluzione con JDBC Compatibilità non completa con tutti i modelli relazionali Ritagliare le immagini??? 26 Luglio 2012 Marco Carraro