CURSUS DE FORMATION AUX NOUVELLES TECHNOLOGIES DE DEVELOPPEMENT UV EJB Entité Module Java Expert
Module UV EJB Page 2 / 66 Deruelle Laurent Copyright © 2002 Laurent Deruelle Module Java n Vue densemble du langage Java n Le langage Java : syntaxe et sémantique n Programmation multi-tâche : les threads n Accéder aux bases de données n Composants réutilisables : le modèle MVC n Développement Client/Serveur n Présentation d un IDE : WSAD / Forté / JBuilder n Les serveurs dapplications J2EE n Les Enterprise JavaBeans : le Bean Entité n Ré-ingénierie dapplications Java
Module UV EJB Page 3 / 66 Deruelle Laurent Copyright © 2002 Laurent Deruelle Définition dun bean Entité n Un bean Entité (entity bean) représente un objet métier possédant un mécanisme de stockage persistant. n Quelques exemples dobjets métiers sont : –Les clients, les commandes et –les produits. n 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 EJB Page 4 / 66 Deruelle Laurent Copyright © 2002 Laurent Deruelle Différences entre les beans Entité et Session n 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 dautres beans entité.
Module UV EJB Page 5 / 66 Deruelle Laurent Copyright © 2002 Laurent Deruelle Quand utiliser les beans Entité? n 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 linstance 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 EJB Page 6 / 66 Deruelle Laurent Copyright © 2002 Laurent Deruelle La persistance dun bean entité n Comme létat dun 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 lexploitation de lapplication ou du processus serveur J2EE. n 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 daccès à la base de données (on ne doit pas les écrire).
Module UV EJB Page 7 / 66 Deruelle Laurent Copyright © 2002 Laurent Deruelle La persistance CMP n Le terme container-managed persistence signifie que le conteneur EJB gère tous les accès à la base de données. n Le redéploiement dun même bean entité sur différents serveurs J2EE utilisant différentes bases de données ne nécessitera aucune modification du bean. n Pour générer les accès à la base de données, le conteneur a besoin dinformations fournies au travers du schéma abstrait du bean entité.
Module UV EJB Page 8 / 66 Deruelle Laurent Copyright © 2002 Laurent Deruelle Le schéma abstrait n 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. n Le terme abstrait distingue ce schéma du schéma physique du stockage du bean (i.e. tables et colonnes).
Module UV EJB Page 9 / 66 Deruelle Laurent Copyright © 2002 Laurent Deruelle Exemple de schéma n Un simple schéma abstrait qui décrit les relations entre quatre beans entités.
Module UV EJB Page 10 / 66 Deruelle Laurent Copyright © 2002 Laurent Deruelle Les champs persistants n Les champs persistants dun bean entité sont stockés et constituent létat du bean. n Lors de lexécution, le conteneur EJB synchronise automatiquement cet état avec la base de données. n 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. n Dans le cadre dune 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 dinstances de la classe du bean, mais comme des propriétés (getters et setters).
Module UV EJB Page 11 / 66 Deruelle Laurent Copyright © 2002 Laurent Deruelle Les champs relations n Un champs relation est comme une clé étrangère dans une table dune base de données. n Il identifie les connexions entre beans. n Comme pour les champs persistants, une relation est virtuelle et est définie comme une propriété. n A la différence dun champs persistant, une relation ne fait pas partie de létat du bean.
Module UV EJB Page 12 / 66 Deruelle Laurent Copyright © 2002 Laurent Deruelle Cardinalité des relations n Il existe quatre types de cardinalité : –One-to-one: chaque instance dun bean est liée à une instance dun autre bean. –One-to-many: une instance du bean peut être liée à de multiples instances dun 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 dun bean peuvent être liées à une unique instance dun autre bean. La relation de LineItemEJB à OrderEJB est many-to-one. –Many-to-many: les instances du bean peuvent être liées à plusieurs instances dun 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 EJB Page 13 / 66 Deruelle Laurent Copyright © 2002 Laurent Deruelle Cycle de vie dun EJB entité