Persistance des donnees avec Java-JPA-Hibernate

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

Requête SQL

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étrge 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 :