Java - Gérer la persistance des données avec les frameworks Hibernate/JPA et Spring

Référence : 19003-161222-07-SPR

Dans cette formation, vous apprendrez à mettre en œuvre conjointement les framework Hibernate et Spring pour gérer la couche d'accès aux données des bases de données relationnelles dans vos applications.

Infos pratiques

  • Durée : 4 jours soit 28 heures
  • Population visée : Ouvrier – Employé – Employé qualifié – Cadre – Cadre supérieur
  • Public concerné : Développeurs, analystes programmeurs, chefs de projets.

Programme

Objectifs pédagogiques

A l’issue de cette formation, l’apprenant sera capable de :

  • Comprendre l'architecture et le fonctionnement du framework de persistance Hibernate ;
  • Réaliser les mappings entre les classes Java et les tables de bases de données ;
  • Manipuler les instances d'objets persistants avec l'API Hibernate et/ou l'API JPA ;
  • Comprendre le lien entre Hibernate et JPA et les différences de mise en œuvre et d'API ;
  • Intégrer correctement le framework selon le type d'application ;
  • Comprendre le positionnement de Spring dans les technologies Java ;
  • Développer une application en respectant le découpage en couches applicatives ;
  • Comprendre le principe de fonctionnement et la configuration du conteneur Spring ;
  • Utiliser les différents modules de Spring Framework ;
  • Intégrer Hibernate et/ou à Spring pour gérer l'accès aux données.

Pré-requis

  • Idéalement, avoir suivi la formation "Les fondamentaux de la programmation Java (Java SE) " ou posséder les connaissances et compétences équivalentes.

Objectifs opérationnels et contenu de la formation

Introduction à la notion de persistance

  • Origines du problème
  • Architectures de la persistance
  • Historique des solutions Java (JDBC, JDO, Hibernate, JPA)
  • Présentation de 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
  • Domaines d'application des frameworks de persistance
    • Types d'applications, contraintes et obligations

Introduction au framework Hibernate et à la Java Persistence API (JPA)

  • Présentation d'Hibernate et de JPA
    • Hibernate : Une implémentation JPA
  • Stratégie d'utilisation d'Hibernate et de JPA dans les différents types d'applications Java
    • Intégration dans une application Java SEIntégration dans une application Java EE
  • Architecture d'Hibernate
    • Les règles de gestion de la session Hibernate
    • Création et réutilisation de session
  • 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 et Hibernate (Facade, Data Access Object, …)

Mise en œuvre d'Hibernate/JPA

  • Choisir une stratégie d'utilisation
    • Utilisation du mapping via XML et de l'API native d'Hibernate
    • Utilisation du mapping par annotations et de l'API native d'Hibernate
    • Utilisation du mapping par annotation et de l'API JPA
  • Installer Hibernate
    • Pour un usage en mode natif
    • Pour un usage en tant qu'implémentation JPA
  • Les fichiers de configuration et de mapping
    • Configuration XML
    • Mapping XML et par annotations
  • Initialiser le framework
    • La fabrique et la configuration
    • SessionFactoryHibernate vs. EntityManagerFactory JPA
  • Bonnes pratiques de gestion de la Session/EntityManager et de la SessionFactory/EntityManagerFactory
  • Travaux pratiques : Installation et configuration du framework Hibernate en mode natif ou en mode JPA

Manipulation des objets persistants

  • Création d'instances persistantes
    • Règles de conception des classes
  • Chargement d'instances persistantes
    • Présentation et utilisation des langages de requêtage : HQL (Hibernate Query Language) et 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 Livre
    • Réalisation d'une classe DAOLivre avec les méthodes du CRUD qui permettent de rechercher, insérer, supprimer et modifier un livre
    • Reprendre le TP en utilisant l'API critéria

Les mappings complexes

  • 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 d'une classe Auteur et mise en place d'une relation d'association one to one avec la classe Livre
    • Conception d'une classe Commande et mise en place d'une relation à cardinalité multiple avec la classe Livre
    • Conception d'une classe LivreEnfant par héritage de la classe Livre et mise en œuvre des différentes techniques de mapping de l'héritage

La gestion des transactions

  • 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 Commande

Introduction au framework Spring

  • Historique de Spring
    • Evolutions des fonctionnalités
    • Les différentes versions
  • Le positionnement de Spring dans les technologies Java
    • Les solutions apportées par Spring grâce à son conteneur léger
    • Comparaison avec la technologie EJB
  • Les bonnes pratiques d'architecture et de conception d'application et la réponse apportée par Spring Framework
  • Les différents modules et projets Spring

Principes de base du conteneur léger Spring

  • La notion de conteneur léger
    • Différence par rapport aux conteneurs lourds
  • Le cycle de vie et le contexte Spring
    • Les différentes phases du cycleLes interactions possibles
      • Les fabriques (BeanFactory) et contexte d'application (ApplicationContext)
  • La portée et le cycle de vie des objets (bean)
    • Les " scopes " Singlet et Prototype par les patterns

Les concepts fondamentaux de Spring

  • L'injection de dépendances
    • Les principes et l'intérêt de l'injection de dépendances
    • Le design pattern Inversion Of Control (IoC)
    • La mise en œuvre dans Spring Framework
    • Un objectif : Garantir un couplage faible par l'utilisation d'interfaces
    • Les méthodes d'injection. (Constructeur vs. Setter)
  • La programmation Orientée Aspect (AOP)
    • Principes de base et intérêt de l'AOP
    • Les concepts clés (Pointcut, Advice, JoinPoint)
    • Le module Spring AOP et sa mise en œuvre
  • Travaux pratiques :
    • Intégrer la session Hibernate dans le DAO par injection de dépendance

Configuration des applications Spring

  • Principes de configuration de Spring dans une application Java SE
  • La configuration par fichiers XML
    • Utiliser plusieurs fichier *-context.xml
  • La configuration par fichiers annotations
  • La définition des beans Spring
    • Dépendances et héritage
    • Les propriétés simples, les collections
    • Externalisation des propriétés avec des fichiers .properties
  • Travaux pratiques :
    • Installation du framework Spring

L'intégration de Spring à Hibernate et JPA pour l'accès aux données

  • Le mapping Objet/Relationnel avec Spring
    • Configuration d'Hibernate avec Spring
    • Configuration de JPA avec Spring
  • Travaux pratiques :
    • Reprendre les différents TP et notamment les DAO en intégrant la partie Spring

Les transactions dans Spring

  • La déclaration du gestionnaire transactionnel dans la configuration Spring
  • Les niveaux d'isolation de transaction
  • Choisir une technique d'utilisation des transactions
  • La gestion des transactions par programmation
    • Les classes et méthodes utilisées
  • La gestion des transactions par déclaration
    • Les annotations sur les classes et méthodes
    • Comparaison des deux méthodes
  • Travaux pratiques :
    • Mettre en place les différentes transactions de la classe Commande à l'aide de Spring

Méthodes et moyens

  • Explications théoriques suivies de pratiques guidées puis mises en autonomie
  • 1 vidéoprojecteur par salle
  • Stage en mode »In Class » 2 téléviseurs et 1 caméra HD par salle
  • 1 ordinateur par stagiaire

Méthodes d’évaluation des acquis

  • Exercices de synthèse et d’évaluation
  • Evaluation de fin de stage

Profil formateur

Nos formateurs sont certifiés à l’issue d’un parcours organisé par nos soins. Ils bénéficient d’un suivi de compétences aussi bien au niveau technique que pédagogique.

Support stagiaire

  • Support papier ou électronique (dématérialisé)
  • Les exercices d’accompagnement peuvent être récupérés sur clef USB