Développer une couche de persistance avec Hibernate

Public cible :
Développeur
Prérequis :
La connaissance du SQL est un plus Programmer en langage Java
Durée :
3 jours
Codes :
JVE020
Prix :
1300€ HT/pers
Sessions :
Objectifs :

- Positionner Hibernate parmi les différentes possibilités de persistance objet
- Réaliser des requêtes SQL via l’API JDBC
- Rendre persistant les objets Java avec hibernate
- Rendre persistant tout type de relation
- Utiliser les différentes techniques de requêtes proposées
- Gérer les transactions et les accès concurrents

Programme :

Introduction à la persistance objet
- Présentation de la problématique
- Typologie de solutions (sérialisation, SGBDOO, SGBDR, ...)
- Mapping modèle Objet/modèle Relationnel
- les différentes solutions pour un support relationnel
Mise en oeuvre de l'API JDBC
- Présentation de JDBC et des pilotes
- Connexion à une base de données
- Exécution de requêtes SQL
- Exploitation des résultats d’une requête
- Support des transactions
Présentation hibernate
- Positionnement d'Hibernate, présentation de l'architecture
- Installation d'Hibernate : rôle des principales librairies
- Configuration de base : hibernate.cfg.xml
- Définition d'une classe persistante ( POJO) et de son mapping sur une table
- Notions de session et de transaction
- Premier exemple de persistance d’objets
Mapping des objets
- Unicité des objets, les différents générateurs d'id
- Définition des propriétés de l'objet, les types Hibernate
- Gestion des sessions : la SessionFactory
- Cycle de vie d'un objet Hibernate
- Utilisation des transactions pour créer, modifier supprimer des objets persistants
- Traitement des exceptions Hibernate
Mapping des relations
- Gestion des associations 1-1, 1-N, N-1 et N-N
- Traitement de la navigation : mono et bidirectionnelle
- Prise en compte de l'intégrité référentielle
- Gestion de la composition
- Les opérations cascadées
- Gestion de l’héritage : les trois stratégies possibles
- Critères de choix
- Analyse des opérations SQL engendrées et optimisation
Fonctionnalités de requêtage
- Typologie des techniques disponibles
- Requêtes HQL, les clauses from, select, where
- Association et jointure en HQL
- Requêtes HQL polymorphiques
- Les sous requêtes HQL
- Requêtes par critères : utilisation de l'API Criteria
- SQL natif, utilisation de l'interface SQLQuery
Les aspects avancés d'hibernate
- Initialisation paresseuse : le lazy loading
- Gestion des caches et des pools de connexions
- Transactions JTA
- Les « long life sessions »
- Mapping par annotations