cursus de formation aux nouvelles technologies de developpement uv ejb entité module java expert
TRANSCRIPT
CURSUS DE FORMATION AUX NOUVELLES TECHNOLOGIES DE DEVELOPPEMENT
UV EJB Entité
Module Java Expert
Module UV EJBPage 2 / 66
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Module Java
Vue d’ensemble du langage Java Le langage Java : syntaxe et sémantique Programmation multi-tâche : les threads Accéder aux bases de données Composants réutilisables : le modèle MVC Développement Client/Serveur Présentation d’ un IDE : WSAD / Forté / JBuilder Les serveurs d’applications J2EE Les Enterprise JavaBeans : le Bean Entité Ré-ingénierie d’applications Java
Module UV EJBPage 3 / 66
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Définition d’un bean Entité
Un bean Entité (entity bean) représente un objet métier possédant un mécanisme de stockage persistant.
Quelques exemples d’objets métiers sont : – Les clients, les commandes et – les produits.
Dans le SDK J2EE, le mécanisme de stockage persistant est une base de données relationnelle. – chaque bean entité possède une table sous-jacente dans une
base de données relationnelle, et– chaque instance du bean correspond à une ligne dans cette table.
Module UV EJBPage 4 / 66
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Différences entre les beans Entité et Session
Les beans entité diffèrent des beans session sur différents points :– Les beans entité sont persistants, permettant un accès
partagé, – Ils ont des clés primaires, et– Ils peuvent participer dans des relations avec d’autres beans
entité.
Module UV EJBPage 5 / 66
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Quand utiliser les beans Entité?
On utilise généralement un bean entité selon les conditions suivantes : – Le bean représente une entité métier (business), et non pas
une procédure. • exemple, CreditCardEJB serait un bean entité, mais
CreditCardVerifierEJB serait un bean session.
– L’état du bean doit être persistant. Si l’instance du bean se termine ou si le serveur J2EE est arrêté, l’état du bean restera valide et stocké dans une base de données.
Module UV EJBPage 6 / 66
Deruelle LaurentCopyright © 2002 Laurent Deruelle
La persistance d’un bean entité
Comme l’état d’un bean entité est sauvegardé dans une base de données, il est persistant. La Persistance signifie que l’état du bean entité existe même après la durée de l’exploitation de l’application ou du processus serveur J2EE.
Il existe deux types de persistance pour les beans entité : – bean-managed persistence (BMP) : le code du bean entité
contient les appels qui accèdent à la base de données.– container-managed persistence (CMP) : le conteneur EJB
génère automatiquement les appels d’accès à la base de données (on ne doit pas les écrire).
Module UV EJBPage 7 / 66
Deruelle LaurentCopyright © 2002 Laurent Deruelle
La persistance CMP
Le terme container-managed persistence signifie que le conteneur EJB gère tous les accès à la base de données.
Le redéploiement d’un même bean entité sur différents serveurs J2EE utilisant différentes bases de données ne nécessitera aucune modification du bean.
Pour générer les accès à la base de données, le conteneur a besoin d’informations fournies au travers du schéma abstrait du bean entité.
Module UV EJBPage 8 / 66
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Le schéma abstrait
Le schéma abstrait fait partie du descripteur de déploiement du bean entité : – le nom du schéma y est spécifié et est référencé par des
requêtes écrites en EJB QL (Enterprise JavaBeans Query Language ), qui seront exécutées par le conteneur via les méthodes finder.
– Il définit les champs persistants du bean et ses relations.
Le terme abstrait distingue ce schéma du schéma physique du stockage du bean (i.e. tables et colonnes).
Module UV EJBPage 9 / 66
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Exemple de schéma
Un simple schéma abstrait qui décrit les relations entre quatre beans entités.
Module UV EJBPage 10 / 66
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Les champs persistants
Les champs persistants d’un bean entité sont stockés et constituent l’état du bean.
Lors de l’exécution, le conteneur EJB synchronise automatiquement cet état avec la base de données.
Pendant le déploiement, le conteneur met en correspondance le bean entité à une table de la base de données et les champs persistants aux colonnes de la table.
Dans le cadre d’une container-managed persistence, les champs sont virtuels :– ils sont déclarés au niveau du schéma,
– Ils ne sont pas codés comme variables d’instances de la classe du bean, mais comme des propriétés (getters et setters).
Module UV EJBPage 11 / 66
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Les champs relations
Un champs relation est comme une clé étrangère dans une table d’une base de données.
Il identifie les connexions entre beans. Comme pour les champs persistants, une relation est
virtuelle et est définie comme une propriété. A la différence d’un champs persistant, une relation
ne fait pas partie de l’état du bean.
Module UV EJBPage 12 / 66
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Cardinalité des relations
Il existe quatre types de cardinalité : – One-to-one: chaque instance d’un bean est liée à une instance d’un
autre bean.
– One-to-many: une instance du bean peut être liée à de multiples instances d’un autre bean. Par exemple, une commande peut avoir plusieurs ligne de produits (OrderEJB possédera une relation one-to-many avec LineItemEJB).
– Many-to-one: plusieurs instances d’un bean peuvent être liées à une unique instance d’un autre bean. La relation de LineItemEJB à OrderEJB est many-to-one.
– Many-to-many: les instances du bean peuvent être liées à plusieurs instances d’un autre bean. Par exemple, dans une université chaque cours a plusieurs étudiants, et chaque étudiant suivent plusieurs cours. CourseEJB et StudentEJB auront une relation many-to-many.
Module UV EJBPage 13 / 66
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Cycle de vie d’un EJB entité