Approfondissez votre connaissance de la persistance des données en Java avec notre formation dédiée à l’API Java Persistence (JPA).
Découvrez les origines et limites des solutions de persistance Java, comme JDBC et Hibernate.
Approfondissez votre connaissance de l’architecture de JPA et apprenez à l’utiliser dans différents types d’applications Java.
Résolvez les problématiques de gestion des objets EntityManager et EntityManagerFactory, et apprenez à utiliser l’injection de dépendances.
Explorez les solutions pour l’injection de dépendances avec CDI et Spring Framework.
Apprenez à mettre en œuvre la persistance avec JPA, à manipuler les objets persistants, à effectuer des mappings complexes et à gérer les transactions.
Programme détaillé
Introduction à la notion de persistance (1 heure)
- Origines du problème
- Architectures de la persistance
- Historique des solutions Java (JDBC, JDO, Hibernate, JPA)
- Rappels sur JDBC
- Notion de pilote/fournisseur JDBC
- Utiliser et intégrer un pilote JDBC dans son projet Java sous Eclipse
- Utilisation du pilote et connexion à la base de données
- Formuler des requêtes SQL au travers des différents types d’interfaces (requêtes simples, pré compilées, procédures stockées)
- Exploiter les résultats
- Les limites de JDBC
- Domaines d’application des frameworks de persistance
- Types d’applications, contraintes et obligations
Introduction à la Java Persistence API (JPA) (1 heure)
- Présentation de JPA
- La spécification
- Les implémentations
- Hibernate : Une implémentation JPA
- EclipseLink
- Stratégie d’utilisation de JPA dans les différents types d’applications Java
- Intégration dans une application Java
- Intégration dans une application Jakarta EE
- Architecture de JPA
- Les mécanismes de gestion de l’EntityManager
- Mécanismes de Lazy-loading et Eager-loading
- Bonnes pratiques de conception avec les patterns (Facade, Data Access Object, …)
Architecture applicative et JPA (4 heures)
- Résoudre les problématiques de gestions des objets EntityManager et EntityManagerFactory
- Utiliser l’injection de dépendances
- Externaliser la transmission des objets JPA aux classes de gestion de la persistance
- Solutions pour l’injection de dépendances
- Utiliser l’API Context & Dependency Injection (CDI) dans une application Jakarta EE
- Utiliser Spring Framework
- Injection avec CDI
- Injection avec Spring Framework
- Présentation et mise en place
- Configuration de Spring pour l’injection de dépendances
- Annotations d’injection compatibles Spring et CDI
- Travaux pratiques :
- Installation et configuration du framework Spring
- Ajout de la configuration pour Spring Framework
- Injection des ressources JPA dans les classes de gestion de la persistance
Mise en œuvre de la persistance avec JPA (3 heures)
- Spécification et implémentation : Les implémentations JPA
- TopLink
- Hibernate
- EclipseLink
- Installer et utiliser une implémentation JPA
- La définition du mapping sur les entités
- Utilisation des annotations sur les objets persistants
- Problématique de la dépendance des objets aux API
- Travaux pratiques :
- Installation et configuration du framework Hibernate en tant qu’implémentation JPA
Manipulation des objets persistants (5 heures)
- Création d’instances persistantes
- Règles de conception des classes
- Chargement d’instances persistantes
- Présentation et utilisation du langage de requêtage : JPQL (JPA Query Language)
- Utilisation de l’API Criteria
- Suppression d’instances
- Suppressions simples
- Suppression d’une grappe d’objets
- Travaux pratiques :
- Réalisation d’une classe d’objet persistant
- Réalisation d’une classe de manipulation des objets persistants (DAO) avec les méthodes du CRUD qui permettent de rechercher, insérer, supprimer et modifier des entités
- Reprendre le TP en utilisant l’API Criteria
Les mappings complexes (5 heures)
- Mapping de l’héritage
- Les problématiques du mapping de l’héritage
- Les différentes approches entre les tables et les classes
- Mapping des associations
- Travaux pratiques :
- Conception de classes d’objets persistants et mise en place d’une relation d’association one-to-one
- Ajout de classes d’objets persistants supplémentaires et mise en place d’une relation à cardinalité multiple
- Conception d’une classe d’objet persistant par héritage d’une classe existante et mise en œuvre des différentes techniques de mapping de l’héritage
La gestion des transactions (2 heures)
- Rappel sur la notion de transaction
- Transaction et concurrence d’accès
- Niveaux d’isolation
- Stratégies de contrôle de la concurrence
- Les transactions utilisateurs
- Travaux pratiques :
- Mettre en place des transactions dans la classe de manipulation des objets persistants (DAO)