Persistance des donnees avec Java-JPA-Hibernate
Contenu du cours Peristance des données avec Java, JPA, Hibernate. Pré-requis, il est recommandé d'avoir suivi les cours devenez développeur en langage JAVA et les web services en JAVA.
Sommaire inficatif, succeptible de changer: adaptation au niveau possible.
Comprendre les problématiques modernes liées à la persistance des données.
Les 12 règles de Codd
1980 Apparition des langages objet
1990 objet ou pas objet ?
2000 la bulle internet
Distinguer les différentes solutions de persistance de données
Notion de tuples
Gestion de l’identité des données
Un langage puissant de manipulation des données
Opération à réaliser
Les requête SQL vers les SGBDR
Triggers, Langage DML
La gestion transactionnelle
ACID
- Atomicité
- Cohérence
- Isolation
- Durabilité
Gestion de la concurrence d’accès
- mode exclusif ou « pessimiste »
Les différents modèles transactionnels
Les différents types de transactions
Conclusion
Présentation du modèle objet
Caractéristiques principales
Modélisation des entités
Identité vs . Égalité des objets
Gestion des relations d’association entre objets
Des fonctionnalités de manipulation très limitées
La problématique de la persistance objet
Différences entre les modèles objet et relationnel
Différentes approches pour la persistance objet
- conserver l’approche relationnelle
- utiliser une base de données objet pure
utiliser une architecture hybride objet-relationnelle
Les différents scénarios pour l’intégration objet-relationnel
- intégration avec un existant relationnel
- intégration sans existant relationnel préalable
Architecturer des composants d'accès aux données.
Caractéristiques d’un mécanisme de persistance objet-relationnel transparent
Principe de la persistance transparente
Persistance orthogonale :
- principe d’orthogonalité vis-à-vis des types de données :
- principe de transparence vis-à-vis du mécanisme de persistance:
- principe de persistance transitive, ou de persistance par accessibilité
(persistence by reachability) :
- principe de persistance par héritage :
Rôle et obligations de la couche de persistance
L’outil de projection du modèle objet
Accès aux objets et gestion de leur cycle de vie :
Gérer le cache de données objet transactionnel
Techniques d’optimisation
Techniques d’optimisation pour la lecture et le requêtage des objets :
- objets à forte accointance :
- lecture différée (lazy loading ou just-in-time reading) ou indirection :
- lecture jointe (joined reading) :
lecture par lot (batch reading)
Fonctionnalités de requêtage
Flexibilité pour le développement et pour le déploiement
Typologie des architectures multi-tiers
- logique de présentation :
- logique de navigation :
- logique métier :
- logique de persistance :
Les architectures 2 tiers (client-serveur)
Les architectures 3 tiers
Les architectures 4 tiers
Les standards J2EE ; Qu’est-ce que JEE ?
Présentation côté client
Présentation côté serveur
Logique applicative
Accès aux sources de données relationnelles
Accès aux systèmes patrimoniaux
Accès aux systèmes de messagerie Internet (RFC822)
Accès aux systèmes de messagerie asynchrone des MOM (middleware orientés objet)
Accès aux annuaires (LDAP) et aux services de nommage
Gestion transactionnelle
Service de gestionnaire transactionnel
Gestion de la sécurité applicative
Modèle de composants distribués transactionnels et persistants
Accéder aux données grâce à JDBC en utilisant du SQL
JDBC = Java Database Connectivity
Le pattern DAO (Data Access Object)
TP Installation et paramétrage LAMP/WAMP/XAMP, interrogation d'une base de donnée avec du SQL
Notion de pool de connection
administration Glassfish
Creation du pool JDBC
Revenir sur l’interface d’administration de Glassfish, puis onglet JDBC Connection Pools
Pool settings
Accéder aux données grâce à JDBC en utilisant du SQL
le package java.sql
Scénario typique d’une session JDBC
Les pilotes JDBC, DriverManager
Nommage de la ressource
Obtention d’un objet Connection
Statements
Requêtes de mise à jour INSERT, DELETE, UPDATE
Requêtes SELECT, objet ResultSet
Contextes spéciaux
REQUÊTES PRÉPARÉES Prepared Statement
PROCÉDURES STOCKÉES
batch
Lecture données MySQL avec JDBC
Ecriture avec JDBC
Comprendre ce qu'est un ORM (Object Relational Mapping)
Les 2 techniques
requêtes SQL dans le programme Java
synchronisation "automatique" entre le modèle objet et le modèle relationnel,
Rappel du fonctionnement d'un pool de connexions
Un objet DataSource fournit les méthodes :
Comprendre ce qu'est JPA (Java Persistence API)
Mapping objet/relationnel avec JPA
Principe et étapes de mise en œuvre
Définir des objets persistants
Développer des entités JPA : un premier exemple d’Entity
ANNOTATIONS @TABLE, @COLUMN ET @TRANSIENT
GÉNÉRATION DE LA CLÉ PRIMAIRE
GenerationType.TABLE :
GenerationType.SEQUENCE :
GenerationType.IDENTITY :
CLÉS COMPOSÉES
GESTION DES ASSOCIATIONS
• OneToOne
• @OneToMany
• @ManyToOne
• @ManyToMany
mapping : une table de jointure
SPÉCIFICATION DES CARACTÉRISTIQUES D'UNE COLONNE
MAPPING D'ÉNUMÉRÉ
MAPPING DE COLLECTIONS DE STRING
GESTION DE L'HÉRITAGE
mapped superclass
Contexte de persistance
MISE EN PLACE D'UN CONTEXTE DE PERSISTANCE DE TYPE TRANSACTIONNEL PAR LE CONTENEUR
AUTRES SCOPES POUR LES CONTEXTES DE PERSISTANCE
ETATS D'UN ENTITY
CONFIGURER LA PERSISTANCE
Requêtes
RECHERCHE EN FONCTION DE LA CLÉ PRIMAIRE
RECHERCHE EN FONCTION DE CRITÈRES, JPQL (Java Persistence Query Language)
Accéder aux données grâce à Hibernate-JPA en utilisant JPQL
CONFIGURATION DU FLUSH, synchronisation du cache
EXPRESSION D'UNE REQUÊTE EN SQL
CHARGEMENT PARESSEUX (LAZY LOADING)
GESTION DU CHARGEMENT PARESSEUX PAR PROGRAMMATION
RÉPERCUSSION EN CASCADE
Comprendre ce qu'est le méta-modèle JPA
L’interface Metamodel
Requetage en objet avec Criteria
Metamodel
Réference aux attributs
Intégrer Hibernate
Accéder aux données grâce à Hibernate-JPA en utilisant Criteria (Avec JPA 2.0).
Une question? Posez-la ici
Besoin d'aide? Remplissez ce petit formulaire, je reviendrai vers vous dès que possible :