SlideShare une entreprise Scribd logo
1  sur  11
Télécharger pour lire hors ligne
Mapping Objet Relationnel avec Hibernate
Technique de persistance
• Definition
• Accéder aux SGBDR avec Java
• Framework de persistance
• Hibernate
Technique de persistance
• Definition
• Capacité à conserver des données
au-delà du cycle de vie de
l’application qui les a créées
• Après un redémarrage de
l’application, les données peuvent
être retrouvées
• Les données sont généralement
stockées sur disque
Technique de persistance
• Definition objet
• Capacité d’un objet à vivre au delà du
processus qui l’a créé
• Etat sauvegardé dans un système de
stockage permanent
• Passivation : on peut arrêter le
processus qui l’a créé, sans perdre les
informations contenues dans l’objet
• Activation : on peut reconstruire l’objet
• Ce mécanisme n’est pas restreint aux
objets uniques : des graphes d’objets
interconnectés peuvent être rendus
persistants
Technique de persistance
• Solution de stockage
• Base de donnés relationnelles
• Base de données objet
• Base de données XML
• Fichier plats
• Sérialisation
• Fichiers binaires ou XML
Accéder aux SGBDR avec
Java
• JDBC
• API Java qui permet de dialoguer avec
les SGBDR
• Language SQL
• Connection, Statement, ResultSet
• Charge de développement importante
• Code JDBC volumineux
• Transfert des données tabulaire à
partir des ResultSet
• Gérer la fermeture des ressources
• Beaucoup de try...catch
Framework de persistance
• Intérêt
• Développement
• Réduire le temps de développement
• Obtenir un code plus orienté métier
• Améliorer la portabilité / SGBDR
• Implémentation de designs patterns
appropriés
• Unit of Work, Identity Field, Lazy Load
• cf. Patterns Of Entreprise Application
Architecture, de Martin Fowler
• DAO : Data Access Object
Framework de persistance
• Framework ORM
• ORM : Object Relational Mapping
• Design pattern Metadata Mapping
[Fowler]
• Mapping table <> classes métier
• Utilisent les mécanismes de réflexion
• Langage de requête
• Propre à la technologie utilisée
• Exemple : HQL, JDOQL, EJBQL
• Le stockage des données est réalisé
dans une base de données relationnelle
Framework de persistance
• Framework ORM
• Plus proche de la philosophie objet
que les framework de type JDBC
• Classes avec héritage et interfaces
• Gestion du pool d’instance
• Dirty checking
• Optimisation des requêtes
• Exemples :
• Hibernate, JDO, OJB, TopLink,
JPA
Hibernate
• ORM
• Metadata Mapper
!
• Open Source
• Licence LGPL : utilisation libre tant
qu’on ne modifie pas les sources
• Créé fin 2001 par Gaving King
• Projet soutenu par JBoss Group
depuis fin 2003
Hibernate
• Populaire
• Mise en oeuvre simple, pas de génération
de code
• http://www.hibernate.org
• Périmètre
• Gestion du mapping O/R uniquement
• Pas de couche d’abstraction pour la
gestion
• de l’ouverture / fermeture des
ressources
• des exceptions
• des transactions

Contenu connexe

Tendances

JNDI Java Naming Derectory Interfaces
JNDI Java Naming Derectory InterfacesJNDI Java Naming Derectory Interfaces
JNDI Java Naming Derectory Interfacesbenouini rachid
 
Objet Direct Formation JPA Hibernate
Objet Direct Formation JPA HibernateObjet Direct Formation JPA Hibernate
Objet Direct Formation JPA Hibernateformationobjetdirect
 
Formation JPA Java persistence API
Formation JPA Java persistence APIFormation JPA Java persistence API
Formation JPA Java persistence APIThibault Cuvillier
 
La persistance des données : ORM et hibernate
La persistance des données : ORM et hibernateLa persistance des données : ORM et hibernate
La persistance des données : ORM et hibernateYouness Boukouchi
 
Alt.Net France - Domain Driven Design - 2 Dec 2008
Alt.Net France - Domain Driven Design - 2 Dec 2008Alt.Net France - Domain Driven Design - 2 Dec 2008
Alt.Net France - Domain Driven Design - 2 Dec 2008guest33ece8
 
Démystifions le machine learning avec spark par David Martin pour le Salon B...
Démystifions le machine learning avec spark par David Martin pour le Salon B...Démystifions le machine learning avec spark par David Martin pour le Salon B...
Démystifions le machine learning avec spark par David Martin pour le Salon B...Ippon
 
Introduction au Domain Driven Design
Introduction au Domain Driven DesignIntroduction au Domain Driven Design
Introduction au Domain Driven DesignDNG Consulting
 
CDI mis en pratique avec Seam Social et Weld OSGI
CDI mis en pratique avec Seam Social et Weld OSGICDI mis en pratique avec Seam Social et Weld OSGI
CDI mis en pratique avec Seam Social et Weld OSGIAntoine Sabot-Durand
 
JDBC: Gestion des bases de données en Java
JDBC: Gestion des bases de données en Java JDBC: Gestion des bases de données en Java
JDBC: Gestion des bases de données en Java Youness Boukouchi
 
Soutenance Stage Licence
Soutenance Stage LicenceSoutenance Stage Licence
Soutenance Stage LicenceMathias Kluba
 
Mappingobjetrelationnel[1]
Mappingobjetrelationnel[1]Mappingobjetrelationnel[1]
Mappingobjetrelationnel[1]linasafaa
 

Tendances (20)

Hibernate
HibernateHibernate
Hibernate
 
Jpa(1)
Jpa(1)Jpa(1)
Jpa(1)
 
JNDI Java Naming Derectory Interfaces
JNDI Java Naming Derectory InterfacesJNDI Java Naming Derectory Interfaces
JNDI Java Naming Derectory Interfaces
 
Objet Direct Formation JPA Hibernate
Objet Direct Formation JPA HibernateObjet Direct Formation JPA Hibernate
Objet Direct Formation JPA Hibernate
 
Introduction à JPA (Java Persistence API )
Introduction à JPA  (Java Persistence API )Introduction à JPA  (Java Persistence API )
Introduction à JPA (Java Persistence API )
 
Formation JPA Java persistence API
Formation JPA Java persistence APIFormation JPA Java persistence API
Formation JPA Java persistence API
 
Hibernate et jsf
Hibernate et jsfHibernate et jsf
Hibernate et jsf
 
Crs orm
Crs ormCrs orm
Crs orm
 
La persistance des données : ORM et hibernate
La persistance des données : ORM et hibernateLa persistance des données : ORM et hibernate
La persistance des données : ORM et hibernate
 
Alt.Net France - Domain Driven Design - 2 Dec 2008
Alt.Net France - Domain Driven Design - 2 Dec 2008Alt.Net France - Domain Driven Design - 2 Dec 2008
Alt.Net France - Domain Driven Design - 2 Dec 2008
 
Démystifions le machine learning avec spark par David Martin pour le Salon B...
Démystifions le machine learning avec spark par David Martin pour le Salon B...Démystifions le machine learning avec spark par David Martin pour le Salon B...
Démystifions le machine learning avec spark par David Martin pour le Salon B...
 
Support Java Avancé Troisième Partie
Support Java Avancé Troisième PartieSupport Java Avancé Troisième Partie
Support Java Avancé Troisième Partie
 
Introduction au Domain Driven Design
Introduction au Domain Driven DesignIntroduction au Domain Driven Design
Introduction au Domain Driven Design
 
Devoxx 15
Devoxx 15 Devoxx 15
Devoxx 15
 
CDI mis en pratique avec Seam Social et Weld OSGI
CDI mis en pratique avec Seam Social et Weld OSGICDI mis en pratique avec Seam Social et Weld OSGI
CDI mis en pratique avec Seam Social et Weld OSGI
 
Presentation JPA
Presentation JPAPresentation JPA
Presentation JPA
 
Springioc
SpringiocSpringioc
Springioc
 
JDBC: Gestion des bases de données en Java
JDBC: Gestion des bases de données en Java JDBC: Gestion des bases de données en Java
JDBC: Gestion des bases de données en Java
 
Soutenance Stage Licence
Soutenance Stage LicenceSoutenance Stage Licence
Soutenance Stage Licence
 
Mappingobjetrelationnel[1]
Mappingobjetrelationnel[1]Mappingobjetrelationnel[1]
Mappingobjetrelationnel[1]
 

En vedette

OBJIS Congo présente 10 reperes cle du developpeur java
OBJIS Congo présente 10 reperes cle du developpeur javaOBJIS Congo présente 10 reperes cle du developpeur java
OBJIS Congo présente 10 reperes cle du developpeur javaDouglas MBIANDOU
 
Persistance avec JPA
Persistance avec JPAPersistance avec JPA
Persistance avec JPAsimeon
 
Application de gestion des projets en J2EE (Spring-Hibernate) avec architectu...
Application de gestion des projets en J2EE (Spring-Hibernate) avec architectu...Application de gestion des projets en J2EE (Spring-Hibernate) avec architectu...
Application de gestion des projets en J2EE (Spring-Hibernate) avec architectu...Saâd Zerhouni
 
Formation JPA Avancé / Hibernate gratuite par Ippon 2014
Formation JPA Avancé / Hibernate gratuite par Ippon 2014Formation JPA Avancé / Hibernate gratuite par Ippon 2014
Formation JPA Avancé / Hibernate gratuite par Ippon 2014Ippon
 
Vacanceo mediakit - juillet 2011 - vdef
Vacanceo   mediakit - juillet 2011 - vdefVacanceo   mediakit - juillet 2011 - vdef
Vacanceo mediakit - juillet 2011 - vdefVariousAd
 
Herramienta software para el cálculo de la radiación solar en superficies con...
Herramienta software para el cálculo de la radiación solar en superficies con...Herramienta software para el cálculo de la radiación solar en superficies con...
Herramienta software para el cálculo de la radiación solar en superficies con...JUAN AGUILAR
 
Investissements au myanmar actionnaire nominé au myanmar
Investissements au myanmar   actionnaire nominé au myanmarInvestissements au myanmar   actionnaire nominé au myanmar
Investissements au myanmar actionnaire nominé au myanmarAnyaS19
 
Fcc u5 - 5to grado - sesión 04
Fcc   u5 - 5to grado - sesión 04Fcc   u5 - 5to grado - sesión 04
Fcc u5 - 5to grado - sesión 04Milagros as
 
Dossier de Presse Outlook.com
Dossier de Presse Outlook.comDossier de Presse Outlook.com
Dossier de Presse Outlook.comAgence Hopscotch
 
Los Angeles : coup d'oeil rapide sur l'usage des photos
Los Angeles : coup d'oeil rapide sur l'usage des photosLos Angeles : coup d'oeil rapide sur l'usage des photos
Los Angeles : coup d'oeil rapide sur l'usage des photosMichel ARNAUD
 
Falete. huésped de honor ciudad de buenos aires
Falete. huésped de honor ciudad de buenos airesFalete. huésped de honor ciudad de buenos aires
Falete. huésped de honor ciudad de buenos airescosasdeandalucia
 
2015 dossier consultation Poudriere Huningue
2015 dossier consultation Poudriere Huningue2015 dossier consultation Poudriere Huningue
2015 dossier consultation Poudriere HuningueBâle Région Mag
 
Voyager en-europe-tout-sur-vos-droits-avant-pendant-et-apres-votre-voyage-att...
Voyager en-europe-tout-sur-vos-droits-avant-pendant-et-apres-votre-voyage-att...Voyager en-europe-tout-sur-vos-droits-avant-pendant-et-apres-votre-voyage-att...
Voyager en-europe-tout-sur-vos-droits-avant-pendant-et-apres-votre-voyage-att...Ministère de l'Économie et des Finances
 
Hosteltur 207, La nueva revolucion del turismo, empresas y destinos saltan a ...
Hosteltur 207, La nueva revolucion del turismo, empresas y destinos saltan a ...Hosteltur 207, La nueva revolucion del turismo, empresas y destinos saltan a ...
Hosteltur 207, La nueva revolucion del turismo, empresas y destinos saltan a ...Hosteltur
 

En vedette (20)

OBJIS Congo présente 10 reperes cle du developpeur java
OBJIS Congo présente 10 reperes cle du developpeur javaOBJIS Congo présente 10 reperes cle du developpeur java
OBJIS Congo présente 10 reperes cle du developpeur java
 
Persistance avec JPA
Persistance avec JPAPersistance avec JPA
Persistance avec JPA
 
Présentation SOA
Présentation SOAPrésentation SOA
Présentation SOA
 
Ejb3
Ejb3Ejb3
Ejb3
 
Application de gestion des projets en J2EE (Spring-Hibernate) avec architectu...
Application de gestion des projets en J2EE (Spring-Hibernate) avec architectu...Application de gestion des projets en J2EE (Spring-Hibernate) avec architectu...
Application de gestion des projets en J2EE (Spring-Hibernate) avec architectu...
 
Formation JPA Avancé / Hibernate gratuite par Ippon 2014
Formation JPA Avancé / Hibernate gratuite par Ippon 2014Formation JPA Avancé / Hibernate gratuite par Ippon 2014
Formation JPA Avancé / Hibernate gratuite par Ippon 2014
 
Vacanceo mediakit - juillet 2011 - vdef
Vacanceo   mediakit - juillet 2011 - vdefVacanceo   mediakit - juillet 2011 - vdef
Vacanceo mediakit - juillet 2011 - vdef
 
Projet de Loi de financement de la Sécurité Sociale - 2016
Projet de Loi de financement de la Sécurité Sociale - 2016Projet de Loi de financement de la Sécurité Sociale - 2016
Projet de Loi de financement de la Sécurité Sociale - 2016
 
Herramienta software para el cálculo de la radiación solar en superficies con...
Herramienta software para el cálculo de la radiación solar en superficies con...Herramienta software para el cálculo de la radiación solar en superficies con...
Herramienta software para el cálculo de la radiación solar en superficies con...
 
Investissements au myanmar actionnaire nominé au myanmar
Investissements au myanmar   actionnaire nominé au myanmarInvestissements au myanmar   actionnaire nominé au myanmar
Investissements au myanmar actionnaire nominé au myanmar
 
Fcc u5 - 5to grado - sesión 04
Fcc   u5 - 5to grado - sesión 04Fcc   u5 - 5to grado - sesión 04
Fcc u5 - 5to grado - sesión 04
 
04 Atmósfera y clima
04 Atmósfera y clima04 Atmósfera y clima
04 Atmósfera y clima
 
Dossier de Presse Outlook.com
Dossier de Presse Outlook.comDossier de Presse Outlook.com
Dossier de Presse Outlook.com
 
Los Angeles : coup d'oeil rapide sur l'usage des photos
Los Angeles : coup d'oeil rapide sur l'usage des photosLos Angeles : coup d'oeil rapide sur l'usage des photos
Los Angeles : coup d'oeil rapide sur l'usage des photos
 
Falete. huésped de honor ciudad de buenos aires
Falete. huésped de honor ciudad de buenos airesFalete. huésped de honor ciudad de buenos aires
Falete. huésped de honor ciudad de buenos aires
 
2015 dossier consultation Poudriere Huningue
2015 dossier consultation Poudriere Huningue2015 dossier consultation Poudriere Huningue
2015 dossier consultation Poudriere Huningue
 
Voyager en-europe-tout-sur-vos-droits-avant-pendant-et-apres-votre-voyage-att...
Voyager en-europe-tout-sur-vos-droits-avant-pendant-et-apres-votre-voyage-att...Voyager en-europe-tout-sur-vos-droits-avant-pendant-et-apres-votre-voyage-att...
Voyager en-europe-tout-sur-vos-droits-avant-pendant-et-apres-votre-voyage-att...
 
Eluard
EluardEluard
Eluard
 
Brochure ete2011 special_jeunes_dgccrf
Brochure ete2011 special_jeunes_dgccrfBrochure ete2011 special_jeunes_dgccrf
Brochure ete2011 special_jeunes_dgccrf
 
Hosteltur 207, La nueva revolucion del turismo, empresas y destinos saltan a ...
Hosteltur 207, La nueva revolucion del turismo, empresas y destinos saltan a ...Hosteltur 207, La nueva revolucion del turismo, empresas y destinos saltan a ...
Hosteltur 207, La nueva revolucion del turismo, empresas y destinos saltan a ...
 

Similaire à Hibernate

Service sémantique de découverte de données géospatiales
Service sémantique de découverte de données géospatialesService sémantique de découverte de données géospatiales
Service sémantique de découverte de données géospatialesACSG Section Montréal
 
Oxalide MorningTech #1 - BigData
Oxalide MorningTech #1 - BigDataOxalide MorningTech #1 - BigData
Oxalide MorningTech #1 - BigDataLudovic Piot
 
Relational databases & NoSQL databases
Relational databases & NoSQL databasesRelational databases & NoSQL databases
Relational databases & NoSQL databasesCédric Villa
 
Apport des thésaurus pour le catalogage et la localisation des données enviro...
Apport des thésaurus pour le catalogage et la localisation des données enviro...Apport des thésaurus pour le catalogage et la localisation des données enviro...
Apport des thésaurus pour le catalogage et la localisation des données enviro...Desconnets Jean-Christophe
 
Azure Camp 9 Décembre - slides session développeurs webmedia
Azure Camp 9 Décembre - slides session développeurs webmediaAzure Camp 9 Décembre - slides session développeurs webmedia
Azure Camp 9 Décembre - slides session développeurs webmediaMicrosoft
 
Formation d'architecte logiciel AFCEPF
Formation d'architecte logiciel AFCEPFFormation d'architecte logiciel AFCEPF
Formation d'architecte logiciel AFCEPFBoubker ABERWAG
 
BigData_Chp5: Putting it all together
BigData_Chp5: Putting it all togetherBigData_Chp5: Putting it all together
BigData_Chp5: Putting it all togetherLilia Sfaxi
 
Cloud design patterns
Cloud design patternsCloud design patterns
Cloud design patternsPascal Laurin
 
Cours php & Mysql - 4éme partie
Cours php & Mysql - 4éme partieCours php & Mysql - 4éme partie
Cours php & Mysql - 4éme partiekadzaki
 
Les entrepôts de données ou comment rendre les données trouvables accessibles...
Les entrepôts de données ou comment rendre les données trouvables accessibles...Les entrepôts de données ou comment rendre les données trouvables accessibles...
Les entrepôts de données ou comment rendre les données trouvables accessibles...Desconnets Jean-Christophe
 
Session en ligne: Découverte du Logical Data Fabric & Data Virtualization
Session en ligne: Découverte du Logical Data Fabric & Data VirtualizationSession en ligne: Découverte du Logical Data Fabric & Data Virtualization
Session en ligne: Découverte du Logical Data Fabric & Data VirtualizationDenodo
 
Morning Tech#1 BigData - Oxalide Academy
Morning Tech#1 BigData - Oxalide AcademyMorning Tech#1 BigData - Oxalide Academy
Morning Tech#1 BigData - Oxalide AcademyOxalide
 
La GED 3 secrets pour réussir
La GED 3 secrets pour réussirLa GED 3 secrets pour réussir
La GED 3 secrets pour réussirSollan France
 
Du JavaScript dans mon projet
Du JavaScript dans mon projetDu JavaScript dans mon projet
Du JavaScript dans mon projetjollivetc
 
Architecture des types de contenu : ce qui a changé en Drupal 7
Architecture des types de contenu : ce qui a changé en Drupal 7Architecture des types de contenu : ce qui a changé en Drupal 7
Architecture des types de contenu : ce qui a changé en Drupal 7slybud
 
Les différents design patterns pour CoreData par Emmanuel Furnon
Les différents design patterns pour CoreData par Emmanuel FurnonLes différents design patterns pour CoreData par Emmanuel Furnon
Les différents design patterns pour CoreData par Emmanuel FurnonNicolas Lourenço
 
OWF12/HTML 5 local storage , olivier thomas, cto at webtyss
OWF12/HTML 5 local storage , olivier thomas, cto at webtyssOWF12/HTML 5 local storage , olivier thomas, cto at webtyss
OWF12/HTML 5 local storage , olivier thomas, cto at webtyssParis Open Source Summit
 
Comprendre, utiliser et créer une API
Comprendre, utiliser et créer une APIComprendre, utiliser et créer une API
Comprendre, utiliser et créer une APIOlivia Reaney
 

Similaire à Hibernate (20)

Service sémantique de découverte de données géospatiales
Service sémantique de découverte de données géospatialesService sémantique de découverte de données géospatiales
Service sémantique de découverte de données géospatiales
 
Oxalide MorningTech #1 - BigData
Oxalide MorningTech #1 - BigDataOxalide MorningTech #1 - BigData
Oxalide MorningTech #1 - BigData
 
Relational databases & NoSQL databases
Relational databases & NoSQL databasesRelational databases & NoSQL databases
Relational databases & NoSQL databases
 
Apport des thésaurus pour le catalogage et la localisation des données enviro...
Apport des thésaurus pour le catalogage et la localisation des données enviro...Apport des thésaurus pour le catalogage et la localisation des données enviro...
Apport des thésaurus pour le catalogage et la localisation des données enviro...
 
Azure Camp 9 Décembre - slides session développeurs webmedia
Azure Camp 9 Décembre - slides session développeurs webmediaAzure Camp 9 Décembre - slides session développeurs webmedia
Azure Camp 9 Décembre - slides session développeurs webmedia
 
Formation d'architecte logiciel AFCEPF
Formation d'architecte logiciel AFCEPFFormation d'architecte logiciel AFCEPF
Formation d'architecte logiciel AFCEPF
 
BigData_Chp5: Putting it all together
BigData_Chp5: Putting it all togetherBigData_Chp5: Putting it all together
BigData_Chp5: Putting it all together
 
Cloud design patterns
Cloud design patternsCloud design patterns
Cloud design patterns
 
Cours php & Mysql - 4éme partie
Cours php & Mysql - 4éme partieCours php & Mysql - 4éme partie
Cours php & Mysql - 4éme partie
 
Les entrepôts de données ou comment rendre les données trouvables accessibles...
Les entrepôts de données ou comment rendre les données trouvables accessibles...Les entrepôts de données ou comment rendre les données trouvables accessibles...
Les entrepôts de données ou comment rendre les données trouvables accessibles...
 
Session en ligne: Découverte du Logical Data Fabric & Data Virtualization
Session en ligne: Découverte du Logical Data Fabric & Data VirtualizationSession en ligne: Découverte du Logical Data Fabric & Data Virtualization
Session en ligne: Découverte du Logical Data Fabric & Data Virtualization
 
Esiea - 5A - Archi 1/3
Esiea - 5A - Archi 1/3Esiea - 5A - Archi 1/3
Esiea - 5A - Archi 1/3
 
Morning Tech#1 BigData - Oxalide Academy
Morning Tech#1 BigData - Oxalide AcademyMorning Tech#1 BigData - Oxalide Academy
Morning Tech#1 BigData - Oxalide Academy
 
La GED 3 secrets pour réussir
La GED 3 secrets pour réussirLa GED 3 secrets pour réussir
La GED 3 secrets pour réussir
 
Du JavaScript dans mon projet
Du JavaScript dans mon projetDu JavaScript dans mon projet
Du JavaScript dans mon projet
 
Architecture des types de contenu : ce qui a changé en Drupal 7
Architecture des types de contenu : ce qui a changé en Drupal 7Architecture des types de contenu : ce qui a changé en Drupal 7
Architecture des types de contenu : ce qui a changé en Drupal 7
 
Les différents design patterns pour CoreData par Emmanuel Furnon
Les différents design patterns pour CoreData par Emmanuel FurnonLes différents design patterns pour CoreData par Emmanuel Furnon
Les différents design patterns pour CoreData par Emmanuel Furnon
 
Liste des fonctionnalités du CMS Rubedo
Liste des fonctionnalités du CMS RubedoListe des fonctionnalités du CMS Rubedo
Liste des fonctionnalités du CMS Rubedo
 
OWF12/HTML 5 local storage , olivier thomas, cto at webtyss
OWF12/HTML 5 local storage , olivier thomas, cto at webtyssOWF12/HTML 5 local storage , olivier thomas, cto at webtyss
OWF12/HTML 5 local storage , olivier thomas, cto at webtyss
 
Comprendre, utiliser et créer une API
Comprendre, utiliser et créer une APIComprendre, utiliser et créer une API
Comprendre, utiliser et créer une API
 

Plus de Xavier Carpentier

Plus de Xavier Carpentier (6)

#Restful really ? ElsassJUG 17 juin 2014
#Restful really ? ElsassJUG 17 juin 2014#Restful really ? ElsassJUG 17 juin 2014
#Restful really ? ElsassJUG 17 juin 2014
 
Restful, really ? MixIt 2014
Restful, really ? MixIt 2014Restful, really ? MixIt 2014
Restful, really ? MixIt 2014
 
Maven
MavenMaven
Maven
 
Injection de dependance en Java
Injection de dependance en JavaInjection de dependance en Java
Injection de dependance en Java
 
Java Efficace
Java EfficaceJava Efficace
Java Efficace
 
Egoless
EgolessEgoless
Egoless
 

Hibernate

  • 1. Mapping Objet Relationnel avec Hibernate
  • 2. Technique de persistance • Definition • Accéder aux SGBDR avec Java • Framework de persistance • Hibernate
  • 3. Technique de persistance • Definition • Capacité à conserver des données au-delà du cycle de vie de l’application qui les a créées • Après un redémarrage de l’application, les données peuvent être retrouvées • Les données sont généralement stockées sur disque
  • 4. Technique de persistance • Definition objet • Capacité d’un objet à vivre au delà du processus qui l’a créé • Etat sauvegardé dans un système de stockage permanent • Passivation : on peut arrêter le processus qui l’a créé, sans perdre les informations contenues dans l’objet • Activation : on peut reconstruire l’objet • Ce mécanisme n’est pas restreint aux objets uniques : des graphes d’objets interconnectés peuvent être rendus persistants
  • 5. Technique de persistance • Solution de stockage • Base de donnés relationnelles • Base de données objet • Base de données XML • Fichier plats • Sérialisation • Fichiers binaires ou XML
  • 6. Accéder aux SGBDR avec Java • JDBC • API Java qui permet de dialoguer avec les SGBDR • Language SQL • Connection, Statement, ResultSet • Charge de développement importante • Code JDBC volumineux • Transfert des données tabulaire à partir des ResultSet • Gérer la fermeture des ressources • Beaucoup de try...catch
  • 7. Framework de persistance • Intérêt • Développement • Réduire le temps de développement • Obtenir un code plus orienté métier • Améliorer la portabilité / SGBDR • Implémentation de designs patterns appropriés • Unit of Work, Identity Field, Lazy Load • cf. Patterns Of Entreprise Application Architecture, de Martin Fowler • DAO : Data Access Object
  • 8. Framework de persistance • Framework ORM • ORM : Object Relational Mapping • Design pattern Metadata Mapping [Fowler] • Mapping table <> classes métier • Utilisent les mécanismes de réflexion • Langage de requête • Propre à la technologie utilisée • Exemple : HQL, JDOQL, EJBQL • Le stockage des données est réalisé dans une base de données relationnelle
  • 9. Framework de persistance • Framework ORM • Plus proche de la philosophie objet que les framework de type JDBC • Classes avec héritage et interfaces • Gestion du pool d’instance • Dirty checking • Optimisation des requêtes • Exemples : • Hibernate, JDO, OJB, TopLink, JPA
  • 10. Hibernate • ORM • Metadata Mapper ! • Open Source • Licence LGPL : utilisation libre tant qu’on ne modifie pas les sources • Créé fin 2001 par Gaving King • Projet soutenu par JBoss Group depuis fin 2003
  • 11. Hibernate • Populaire • Mise en oeuvre simple, pas de génération de code • http://www.hibernate.org • Périmètre • Gestion du mapping O/R uniquement • Pas de couche d’abstraction pour la gestion • de l’ouverture / fermeture des ressources • des exceptions • des transactions