Formation Hibernate Gérer les données d'une application Java/JEE avec Hibernate

Objectifs

  • Assimiler les concepts du mapping objet / relationnel
  • Savoir maîtriser les principales fonctionnalités d'Hibernate
  • Réaliser la couche de persistance d'une application J2EE

Contenu

Introduction

  • La persistance transparente grâce aux outils de Mapping Objet/Relationnel (ORM)
  • Comparaison avec les techniques JDBC standards en terme de coûts et de fiabilité.

Mise en place d'Hibernate

  • Description du packaging et des dépendances vers d'autres jars
  • Présentation de l'installation et des différentes techniques de configuration
  • Configuration en environnement J2EE sur différents serveurs d'applications
  • Mise en place de l'outil Hibernate Tool

La base du mapping

  • Les fichiers hbm.xml, ou le pont entre le monde objet et le monde relationnel
  • L'identité : garant de la correspondance entre instances et enregistrements en base de données
  • Utilisation des méthodes equals() et hashCode()
  • Importance du choix de la stratégie de génération d'identifiants

Manipulation de POJO

  • Il ne s'agit plus d'INSERT ou d'UPDATE, mais de cycle de vie d'un objet
  • Présentation de la SessionFactory et de la Session
  • Transiant, Persistant, Détaché, Entité, Valeur ou le vocabulaire Hibernate
  • La démarcation transactionnelle ou la garantie d'opérations ACID
  • Les opérations CRUD, les premières interactions simples avec la base de données

Relations entre entités

  • Il ne s'agit plus d'un objet, mais d'un graphe d'objets liés par des relations
  • Les 3 relations du monde objet : '1-n', 'n-m' et '1-1' et leur correspondance en terme relationnel
  • Présentation des différents types de collection (set, bag, map, list, array) et des critères permettant de choisir
  • L'attribut 'cascade' et les précautions à prendre avant de décider de l'utiliser
  • Choix du sens de la relation et du type (Uni-directionnel VS bi-directionnel)

Héritage

  • Présentation des 3 stratégies de mapping pour la gestion de l'héritage
  • Avantages et inconvénients de chaque solution

Les composants

  • Notion de composants en opposition aux entités
  • Les composants simples
  • La collection de valeurs et de composants

Requête

  • Présentation des API de requêtes (Criteria, SQL, Exemple, HQL)
  • Pertinence et choix de l'API la plus adéquate
  • Ajout de contraintes, de tris, d'ordres
  • Parcours de relations, et jointure implicite
  • Utilisation des jointures ouvertes/fermées
  • Les requêtes scalaires pour optimiser les performances
  • Externaliser une requête et choix d'une technique de 'binding' de paramètres

Optimisation

  • Les mises à jour groupées
  • Initialisation paresseuse, ou le chargement à la demande
  • Modification dynamique de la stratégie de fetching définie au niveau du mapping
  • Utilisation des caches de niveau 1, de niveau 2 et de requêtes
  • Quel cache est mis à jour par quelle action?

Architecture

  • Organisation du code de persistance au niveau de classes de type DAO
  • Gestion des transactions
  • Intégration dans une architecture Web, présentation du filtre de session

Durée

3 jours (21h)

Tarif (déjeuners inclus)

1450 € (HT)

Lieu

Paris 9ème

Répartition

50% théorie
50% pratique

Pré-requis

Connaissance de Java

Public

Architecte
Développeur
Chef de projet

Dates des sessions

14 au 16 janvier 2008
10 au 12 mars
5 au 7 mai
21 au 23 juillet
15 au 17 septembre
12 au 14 novembre

Inscription

Bulletin d'inscription

Intra-entreprise

Sur demande

Renseignements

+33(0)1.45.26.19.15
training@zenika.com