Techniques de persistances Java- Présentation des différentes techniques de persistances
- Les types de frameworks de persistances
- La solution Hibernate : un ORM pragmatique
- Intégration de la couche Hibernate dans une application JEE
Développer une classe persistante simple- Coder la classe Java à rendre persistante
- Créer le fichier de mapping Objet / Relationnel
- Définir les propriétés de configuration (connexion bdd, dialecte Hibernate, fichier de mapping...)
- Démarrer le moteur Hibernate et effectuer une requête HQL
Mapping objet / relationnel avec Hibernate- Contexte et objectifs d'un outil de mapping Objet / Relationnel comme Hibernate
- Développement des classes persistantes : POJO, unicité des objets, sérialisation, associations
- Effectuer le mapping des classes : identifiants, propriétés, types Hibernate
- Effectuer le mapping des associations : component, one-to-one, one-to-many, many-to-one
- Mapper une hierarchie d'héritage : les différentes stratégies possibles
Manipuler les objets persistants- Charger les objets persistants : les différentes techniques de lecture (HQL, API Criteria...)
- Les stratégies de chargement : lazy loading, chargement immédiat, chargement agressif
- Mécanisme détaillé du lazy loading : comment maîtriser le chargement retardé
- Les opérations CRUD : insertion, lecture, mise à jour et suppression d'un objet persistant
- Comprendre le cycle de vie des objets persistants gérés par Hibernate
- Synchronisation avec la base de données : les différents modes de flushing
- Principe de la persistance en cascade lors des opérations d'écriture
Utilisation avancée du mapping- Mapping des classes et propriétés : formule SQL, synchronisation avec les triggers...
- Contrôler les requêtes INSERT et UPDATE générées par Hibernate
- Créer des collections de valeurs et des collections de composants
- Mapping des associations : sémantiques bag, list et map, associations many-to-many
- Mapping des types Blob
Le langage HQL et l'API Criteria- Requêtes d'interrogation : sélection des données, opérateurs de comparaison, opérateurs logiques
- Opérations sur les chaînes de caractères et les données temporelles
- Principe des requêtes avec jointures implicites, internes, externes et jointures rapportées
- Principe des sous-requêtes et des prédicats associés (in, all, any, some, exist)
- Effectuer des projections avec HQL et utiliser l'instanciation dynamique
- Requêtes sur les ensembles : les clauses count, min, max, avg, having, group by
Transactions et accès concurrents- Rappel des propriétés d'une transaction : les propriétés ACID
- Gestion de l'atomicité et de l'isolation des données avec Hibernate
- Intégration de la couche Hibernate dans une application Web : environnements JTA et non-JTA
- Les techniques de verrouillage pessimiste et optimiste
Les principes fondamentaux de Spring Framework- Présentation de la notion de conteneur léger dans le cadre d'un développement JavaEE
- Intérêt du design pattern Inversion de Contrôle (IoC) et des techniques AOP
- Mise en oeuvre du conteneur Spring avec l'ApplicationContext
- La configuration des composants par XML et par annotations
- Les différentes techniques d'injection des dépendances avec Spring
- Cycle de vie des beans Spring : portée des beans et méthodes de callback
- Notion de post-processeur : exemple d'utilisation pour externaliser des propriétés de configuration
Intégration Spring / Hibernate et gestion transactionnelle- Le modèle de programmation d'accès aux données : traduction des exceptions, classes de support et classes template
- Utiliser Spring pour simplifier le développement Hibernate : les différentes stratégies
- La notion de propagation des transactions entre services métier
- Gestion déclarative des transactions par configuration XML et par annotations
Construction d'application web avec Spring Framework et Hibernate- Configuration et instanciation du contexte Spring dans un environnement web
- Paramétrer Hibernate en environnement Web
- Utiliser des composants métier Spring depuis une application Struts ou JSF
|