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

Hibernate

  • 1.
  • 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 SGBDRavec 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 • MetadataMapper ! • 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 • Miseen 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