Accueil du site > Formation > Cours pratiques > Filière Objet, UML, Java/J2EE > Formation Hibernate, mapping objet/relationnel

Formation Hibernate, mapping objet/relationnel

Enregistrer au format PDF

OBJECTIFS

L’écriture d’une couche d’accès aux données persistantes en Java se révèle rapidement complexe et coûteuse à développer. A l’origine de ce problème, les différences de modèle entre la programmation objet et les bases de données relationnelles. D’où le succès grandissant du framework Hibernate, qui automatise la traduction entre les deux modèles. Ce cours vous permettra de comprendre les principes du mapping objet / relationnel avec Hibernate. Il vous apportera tous les éléments nécessaires pour développer avec efficacité une couche de persistance avec Hibernate.

Participants

Ce cours est destiné aux chefs de projets, analystes, concepteurs, architectes logiciels et développeurs amenés à participer au développement de projets objets nécessitant la mise en oeuvre des technologies de persistance d’objets sur la plate-forme J2EE.

Pré-requis

Ce cours s’adresse à des développeurs et chefs de projets, ayant à réaliser une couche de persistance au sein d’une application. Il est destiné à des participants qui connaissent le langage Java et l’API JDBC.

Travaux pratiques

Ce cours comporte de nombreux travaux pratiques permettant d’assurer une bonne compréhension des concepts abordés. Les travaux pratiques sont réalisés avec Hibernate 3, Eclipse 3.1 et MySQL 4.

Qu’est-ce que la persistance ?

* Définition - persistance en programmation objet

* Les solutions de stockage des données - SGBDR, SGBDO, BDD XML, fichiers plats, sérialisation

* Accéder aux SGBDR avec Java - JDBC

* Framework de persistance - nécessité de l’utilisation d’un framework - application de designs pattern appropriés - framework maison ou framework existant ? - frameworks de type Data Mapper - frameworks de type ORM

* Hibernate - Présentation du projet Hibernate - Ce qui n’est pas pris en charge par hibernate - Hibernate dans la couche de persistance

Premier pas

* Définir une classe persistante - classe POJO

* Définir le mapping - fichier de mapping XML

* Les propriétés de configuration - charger les fichiers de mapping en mémoire - définir les paramètres JDBC - définir le dialecte pour une base de données

* Utiliser Hibernate - Objets SessionFactory et Session

* Exécuter une requête - Le langage HQL

* Exemple complet

Le mapping

* Le contexte - définir les liens entre le modèle objet et le modèle relationnel - modèle du domaine, document de mapping, schéma bdd

* Objectifs - lier les classes aux tables - gérer l’héritage - gérer les associations - gérer l’identité des objets - gérer les différences de granularité

* Coder les classes persistantes - découplage classes persistantes / technologie de persistance - les classes persistantes sont des POJO - règles de codage des POJO avec Hibernate (constructeurs, getter/setter, associations, héritage) - définir un identifiant

* Ecrire le schéma de la base de données - les types de données - les clés primaires - cas des identifiants fonctionnels - associations et foreign keys - les modèles relationnels pour une hierarchie d’héritage

* Effectuer le mapping - objectifs du mapping - mapping des classes - mapping des propriétés - les types Hibernate - contrôler les INSERT et les UPDATE - mapping des identifiants - gérer les différences de granularité - mapping de l’héritage - mapping d’une association de type many-to-one

Manipuler les objets persistants

* Cycle de vie des objets - comprendre le cycle de vie des objets - les états des objets gérés par Hibernate (objets transients, objets persistants, objets détachés)

* Opérations CRUD de base - créer un enregistrement - mettre à jour un objet détaché - lire un objet à partir de sa clé primaire - mettre à jour un objet persistant - supprimer un objet persistant - supprimer un objet détaché - mettre à jour un objet transient - la méthode saveOrUpdate()

* Synchronisation avec la base de données - synchronisation en fin de transaction - synchronisation en cours de transaction - synchronisation explicite - stratégies de flushing

* Persistance en cascade - forcer hibernate à parcourir les associations - l’attribut cascade avec les associations de type many-to-one - l’attribut cascade avec les associations de type one-to-many

* Charger les objets persistants - navigation dans le graphe d’objets - lecture par identifiant - requêtes HQL - requêtes par critères (QBC) - requêtes par l’exemple (QBE) - requêtes SQL - les stratégies de chargement des objets(fetching) (chargement immédiat, initialisation tardive, initialisation agressive, chargement par lot)

Mapping avancé

* Collections de valeurs - définition des objets de valeur - les collections set - les collections bag - les collections list - les collections map - les collections triées - les collections ordonnées - les collections de composants

* Mapping des associations - les collections de type one-to-one - les collections de type one-to-many - les collections de type many-to-many

HQL et Criteria

* Requêtes de base - récupérer toutes les instances d’une classe - alias de classe - requêtes polymorphiques - sélection des données - opérateurs de comparaison - filtrage des chaînes de caractères - opérations sur les chaînes de caractères - opérateurs logiques - trier les résultats

* Jointure - les jointures implicites - les jointures internes - les jointures rapportées - les jointures theta

* Projections - définition - instanciation dynamique - résultats distincts

* Requêtes sur les ensembles - fonctions d’aggrégation - les groupements

Transaction et accès concurrent

* Propriétés d’une transaction - les propriétés ACID

* Gestion de l’atomicité - avec JDBC - avec JTA - avec Hibernate

* Gestion de l’isolation - avec JDBC - avec Hibernate - choix du niveau d’isolation

* Verrouillage pessimiste - principe - mise en oeuvre

* Verrouillage optimiste - principe - mise en oeuvre

* Modes de verrouillage - la classe LockMode

Gestion du cache

* Objectifs

* Cache de premier niveau - principe - controler le cache de premier niveau

* Cache de second niveau - principe - stratégie transactionnelle - cache provider


Veuillez mettre à jour votre navigateur

Miura Conseil vous recommande :

Firefox

Ou

Internet Explorer 7

Fermer cette fenetre