11
Mapping Objet Relationnel avec Hibernate

Hibernate

Embed Size (px)

DESCRIPTION

Mapping Objet Relationnel avec Hibernate

Citation preview

Page 1: Hibernate

Mapping Objet Relationnel avec Hibernate

Page 2: Hibernate

Technique de persistance

• Definition

• Accéder aux SGBDR avec Java

• Framework de persistance

• Hibernate

Page 3: 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

Page 4: Hibernate

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

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

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

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

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

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

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

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