Hibernate
-
Upload
xavier-carpentier -
Category
Software
-
view
143 -
download
1
description
Transcript of Hibernate
![Page 1: Hibernate](https://reader036.fdocuments.fr/reader036/viewer/2022080213/559c481a1a28ab7e218b486b/html5/thumbnails/1.jpg)
Mapping Objet Relationnel avec Hibernate
![Page 2: Hibernate](https://reader036.fdocuments.fr/reader036/viewer/2022080213/559c481a1a28ab7e218b486b/html5/thumbnails/2.jpg)
Technique de persistance
• Definition
• Accéder aux SGBDR avec Java
• Framework de persistance
• Hibernate
![Page 3: Hibernate](https://reader036.fdocuments.fr/reader036/viewer/2022080213/559c481a1a28ab7e218b486b/html5/thumbnails/3.jpg)
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
![Page 4: Hibernate](https://reader036.fdocuments.fr/reader036/viewer/2022080213/559c481a1a28ab7e218b486b/html5/thumbnails/4.jpg)
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
![Page 5: Hibernate](https://reader036.fdocuments.fr/reader036/viewer/2022080213/559c481a1a28ab7e218b486b/html5/thumbnails/5.jpg)
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
![Page 6: Hibernate](https://reader036.fdocuments.fr/reader036/viewer/2022080213/559c481a1a28ab7e218b486b/html5/thumbnails/6.jpg)
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
![Page 7: Hibernate](https://reader036.fdocuments.fr/reader036/viewer/2022080213/559c481a1a28ab7e218b486b/html5/thumbnails/7.jpg)
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
![Page 8: Hibernate](https://reader036.fdocuments.fr/reader036/viewer/2022080213/559c481a1a28ab7e218b486b/html5/thumbnails/8.jpg)
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
![Page 9: Hibernate](https://reader036.fdocuments.fr/reader036/viewer/2022080213/559c481a1a28ab7e218b486b/html5/thumbnails/9.jpg)
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
![Page 10: Hibernate](https://reader036.fdocuments.fr/reader036/viewer/2022080213/559c481a1a28ab7e218b486b/html5/thumbnails/10.jpg)
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
![Page 11: Hibernate](https://reader036.fdocuments.fr/reader036/viewer/2022080213/559c481a1a28ab7e218b486b/html5/thumbnails/11.jpg)
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