Formation aux technologies de l'informatiqueformation java

Mapping Objet / Relationnel avec Hibernate

FJ200
Prix inter : 1460 € HT Durée: 3 jours
Prix intra*: 3850 € HT
* jusqu'à 8 personnes
Public
Public : développeurs, chefs de projet, architectes
Niveau : expert
Prochaines sessions
Nous contacter au 06 68 36 54 43 ou par mail
Description

Hibernate est un outil de mapping objet / relationnel très populaire au sein de la communauté Java. Ce framework, utilisé pour écrire la couche de persistance dans une application JEE, peut s'avérer délicat à maîtriser.

Ce cours vous permettra d'appréhender tous les rouages essentiels d'Hibernate (requêtage HQL et Criteria, lazy loading, objets détachés...) afin d'écrire une couche d'accès aux données performante.

Pré-requis
Les participants doivent posséder un bon niveau en développement Java (un an minimum), et connaître le langage SQL. La connaissance de XML est un plus.
Programme
  • Techniques de persistances Java

    • Présentation des différentes techniques de persistances
    • Les types de frameworks de persistances
    • La solution Hibernate : un ORM pragmatique
    • Intégration de la couche Hibernate dans une application JEE
  • Développer une classe persistante simple

    • Coder la classe Java à rendre persistante
    • Créer le fichier de mapping Objet / Relationnel
    • Définir les propriétés de configuration (connexion bdd, dialecte Hibernate, fichier de mapping...)
    • Démarrer le moteur Hibernate et effectuer une requête HQL
  • Mapping objet / relationnel avec Hibernate

    • Contexte et objectifs d'un outil de mapping Objet / Relationnel comme Hibernate
    • Développement des classes persistantes : POJO, unicité des objets, sérialisation, associations
    • Effectuer le mapping des classes : identifiants, propriétés, types Hibernate
    • Effectuer le mapping des associations : component, one-to-one, one-to-many, many-to-one
    • Mapper une hierarchie d'héritage : les différentes stratégies possibles
  • Manipuler les objets persistants

    • Charger les objets persistants : les différentes techniques de lecture (HQL, API Criteria...)
    • Les stratégies de chargement : lazy loading, chargement immédiat, chargement agressif
    • Mécanisme détaillé du lazy loading : comment maîtriser le chargement retardé
    • Les opérations CRUD : insertion, lecture, mise à jour et suppression d'un objet persistant
    • Comprendre le cycle de vie des objets persistants gérés par Hibernate
    • Synchronisation avec la base de données : les différents modes de flushing
    • Principe de la persistance en cascade lors des opérations d'écriture
  • Utilisation avancée du mapping

    • Mapping des classes et propriétés : formule SQL, synchronisation avec les triggers...
    • Contrôler les requêtes INSERT et UPDATE générées par Hibernate
    • Créer des collections de valeurs et des collections de composants
    • Mapping des associations : sémantiques bag, list et map, associations many-to-many
    • Mapping des types Blob
  • Le langage HQL et l'API Criteria

    • Requêtes d'interrogation : sélection des données, opérateurs de comparaison, opérateurs logiques
    • Opérations sur les chaînes de caractères et les données temporelles
    • Principe des requêtes avec jointures implicites, internes, externes et jointures rapportées
    • Principe des sous-requêtes et des prédicats associés (in, all, any, some, exist)
    • Effectuer des projections avec HQL et utiliser l'instanciation dynamique
    • Requêtes sur les ensembles : les clauses count, min, max, avg, having, group by
  • Transactions et accès concurrents

    • Rappel des propriétés d'une transaction : les propriétés ACID
    • Gestion de l'atomicité et de l'isolation des données avec Hibernate
    • Intégration de la couche Hibernate dans une application Web : environnements JTA et non-JTA
    • Les techniques de verrouillage pessimiste et optimiste
  • La Configuration par annotation

    • Présentation des annotations Hibernate
    • Le mapping des classes et propriétés
    • Le mapping des associations
Travaux Pratiques
Les exercices proposés vous permettront d'expérimenter les différents mécanismes d'Hibernate abordés dans le cours. Ils sont réalisés avec Eclipse, Tomcat, MySQL et vous utiliserez JUnit pour tester les composants Hibernate que vous écrirez. Vous intègrerez enfin vos classes DAO à une mini-application web qui vous sera fournie.
Intervenants
Olivier Hanny
Olivier est un spécialiste des technologies Java / JEE depuis l'année 2000, après une carrière d'ingénieur dans la sidérurgie. Il est aujourd'hui consultant indépendant, et partage son temps entre des missions de réalisations informatiques (Java, Flex) et l'animation de formations.