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
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
Intra-entreprise
Renseignements
+33(0)1.45.26.19.15
training@zenika.com
Télécharger la fiche !