Stéphane Frenot - Département Télécommunication - SID - II - EjbEnt 247 Entity EJB.

Slides:



Advertisements
Présentations similaires
Laboratoire informatique de Paris 6
Advertisements

EJB 2.0 Enterprise Java Bean ™ Xavier BLANC
TP 7.1 synchronized et join Écrire un programme Java qui crée 1000 threads et maintient un compteur nb du nombre de threads créés jusque-là. Le thread.
Approfondissement du langage
Plan du cours La sérialisation: – comment stocker et restaurer les Objets? Les interfaces graphiques et la programmation évènementielle. –Comment concevoir.
Relations avec les entity beans
Introduction aux Entity Beans
Relations avec les entity beans Michel Buffa UNSA
JAV - TD 6 Structures de données JAVA
Tarak Chaari, Stéphane Frénot, Frédérique Laforest, Frédéric Le-Mouël JAV1 JAV – TD 5 Lhéritage en Java.
TD 1 IJA Introduction Objet, méthode, attribut Classe, instance
IJA - TD 2 Bases du langage


Stéphane Frenot - Département Télécommunication - SID - II - Jdbc 280 JDBC Java Databases Connectivity.

Stéphane Frenot - Département Télécommunication - SID - II - EjbServ 227 EJB Session.

Stéphane Frenot - Département Télécommunication - SID - II - EJBcli 211 Le client EJB.
Stéphane Frenot - Département Télécommunication - SID - II - Comp 312 Avantages de l'approche distribuée Economie Performance.
Design Pattern MVC En PHP5.
CURSUS DE FORMATION AUX NOUVELLES TECHNOLOGIES DE DEVELOPPEMENT UV EJB Entité Module Java Expert.
CURSUS DE FORMATION AUX NOUVELLES TECHNOLOGIES DE DEVELOPPEMENT UV EJB Session Module Java Expert.
Introduction aux Session Beans
LOG 02 Bases de Données Avancées Rappels sur JSP / Servlet
JavaBeans Réalise par: EL KHADRAOUY TARIK AOUTIL SAFOWAN.
Langage Oriente Objet Cours 4.
Introduction au paradigme objet Concepts importants surcharge (overload) redéfinition (override) Définition d’une classe Définition des attributs.
77 Utilisation des classes (suite). 7-2 Objectifs A la fin de ce cours, vous serez capables de : Définir des méthodes surchargées dans une classe Fournir.
Classes abstraites et Interfaces
Factory Design Patterns Factory Method
Mapping Objet-Relationnel
1 Objectifs de ce cours (I21) Cours JAVA (I21) -Licence 1 Semestre 2 / Y.Laborde Résumé du cours précédent.
Langage Oriente Objet Cours 2.
Master 1 SIGLIS Java Lecteur Stéphane Tallard Chapitre 5 – Héritage, Interfaces et Listes génériques.
Structures de données IFT-2000
66 Utilisation des classes et des objets. 6-2 Objectifs A la fin de ce cours, vous serez capables de : Créer de nouvelles classes à laide de Eclipse Utiliser.
Une nouvelle structure de données : les tableaux
Introduction à la programmation objet Langage Java
Les concepts et les méthodes des bases de données
Types de données abstrait et mécanismes d'encapsulation
COURS DE PROGRAMMATION ORIENTEE OBJET :
Leçon 1 : notion dobjet IUP Génie Informatique Besançon Méthode et Outils pour la Programmation Françoise Greffier Université de Franche-Comté.
99 Réutilisation du code grâce à l'héritage. 9-2 Objectifs À la fin de ce cours, vous serez capables de : Définir l'héritage Utiliser l'héritage pour.
Branche Développement Le présent document contient des informations qui sont la propriété de France Télécom. L'acceptation de ce document par son destinataire.
Objectifs À la fin de ce cours, vous serez capables de :
Les EJB Samir AZZOUZ Équipe ObjectWeb
LIFI-Java 2004 Séance du Mercredi 22 sept. Cours 3.
11/04/ L'héritage Cours 7 Cours 7.
Cours 7 Classes locales Clonage Divers: tableaux.
Master 1 SIGLIS Java Lecteur Stéphane Tallard Chapitre 6 – Exceptions.
HIBERNATE Mapping Objet / base de données relationnelle
Annexe 2 entêtes HTTP et cookies. Accéder aux objets requêtes et réponses Ces objets sont disponibles dans les classes clé depuis la méthode awake les.
Master 1 SIGLIS Java Lecteur Stéphane Tallard Les erreurs communes en Java.
Enterprise Java Beans 3.0 Cours INF Bases de Données Hiver 2005, groupe 10 Stefan MARTINESCU.
Tutorat en bio-informatique
Entrées / Sorties.
Tutorat en bio-informatique Le 14 novembre Au programme… Les objets –Propriétés (attributs) –Constructeurs –Méthodes.
Les classes présenté par: RAHMOUNE RIME / ZEKRI SELMA.
Schéma de conception Factory Method Exemple Sylvain Giroux.
Cours du 5 novembre.
Master 1 SIGLIS Intégration des données dans l’entreprise Stéphane Tallard JDBC: Java Database Connectivity Master 1 SIGLIS1JDBC.
Chapitre VII Techniques plus avancées à travers le concept de classe.
Introduction à la programmation objet avec java
Héritage Conception par Objet et programmation Java
Les Servlets Présentation Cycle de vie Principe de fonctionnement
LES CLASSES ET LES OBJETS
Parquet Geoffrey 3 ARIL EXIA.CESI ARRAS. Présentation du MLD Présentation de la persistance Présentation récapitulatif du projet JSP/SERVLET MVC Cycle.
EJB 2 et spécialisation Présentation. Spécialisation La spécialisation Concept objet implémenté dans les langages dits orientés objet. Très souvent accompagné.
Transcription de la présentation:

Stéphane Frenot - Département Télécommunication - SID - II - EjbEnt 247 Entity EJB

Stéphane Frenot - Département Télécommunication - SID - II - EjbEnt 248 Qu'est ce qu'un entity EJB Il présente les comportements suivants : –c'est la représentation de données persistantes –ils survivent à un crash du SA –plusieurs clients –l'instance EJB contient une copie des données du système de persistance

Stéphane Frenot - Département Télécommunication - SID - II - EjbEnt 249 Gestion de la persistance Les attributs de l'objet doivent être stockés sur un support de persistance Systèmes de persistance : –Sérialisation –Mapping SGBD à travers JDBC

Stéphane Frenot - Département Télécommunication - SID - II - EjbEnt 250 EJB Entité partagée Quand plusieurs clients partagent le même EJB –Ils reçoivent leur propre instance d'EJB –Partagent les données –N'ont pas à gérer la synchronisation

Stéphane Frenot - Département Télécommunication - SID - II - EjbEnt 251 Clés Primaires Chaque EJB Entité possède un ensemble d'attributs qui sont uniques lorsqu'ils sont agrégés Ces attributs agrégés s'appellent la clé primaire

Stéphane Frenot - Département Télécommunication - SID - II - EjbEnt 252 Mapping Objet Relationnel Le mapping stocke chaque objet dans une seule ligne d'une table Une colonne de la base est associée à chaque attribut de la classe

Stéphane Frenot - Département Télécommunication - SID - II - EjbEnt 253 EJB entité identiques Deux entités sont identiques si le contenu de leur clé primaire sont identiques Persistance : –CMP : Container Managed –BMP : Bean Managed

Stéphane Frenot - Département Télécommunication - SID - II - EjbEnt 254 Différence entre le dvlp Entity / Session Il faut écrire une classe représentant la PK L'interface Home présente une méthode findByPrimaryKey( ) L'interface Home peut présenter d'autres méthodes find La classe du bean implémente l'interface javax.ejb.EntityBean La classe du bean doit fournir une méthode ejbCreate ET une méthode ejbPostCreate() pour chaque méthode create de linterface home. –==> A quoi sert le postCreate ?

Stéphane Frenot - Département Télécommunication - SID - II - EjbEnt 255 PK Class Une classe de clé primaire –est déclarée public –implante serializable –possède un constructeur sans argument –présente tous ses attributs public public class AlarmClockPK implements java.io.Serializable { public int serialNumber; public string currentStation; } NB : Les attributs de la PK doivent se retrouver dans le bean

Stéphane Frenot - Département Télécommunication - SID - II - EjbEnt 256 Création d'un EJB entité CMP

Stéphane Frenot - Département Télécommunication - SID - II - EjbEnt 257 Interfaces Home Les interfaces Home doivent inclure des méthodes de recherche public findByPrimaryKey( pk) throws FinderException, RemoteException; Les autres méthodes : public findNimporteComment(...) throws FinderException, RemoteException; public Enumeration findNimporteComment(...) throws FinderException, RemoteException;

Stéphane Frenot - Département Télécommunication - SID - II - EjbEnt 258 Expression de recherche Syntaxe LISP-like opérateur opérande1 opérande2 Opérateurs disponibles –(), =,, >=, !, &, |, like Opérandes possibles –1) une autre expression –2) un attribut d'un EJB –3) un paramètre récupéré dans l invocation du find Exemple : (> balance $amount) (& (> bal $amount) (!(=accountType checking ))) (= 1 1) (like lastName M%)

Stéphane Frenot - Département Télécommunication - SID - II - EjbEnt 259 Ecriture de la classe du Bean La classe doit implanter l'interface EntityBean public interface EntityBean extends EnterpriseBean { public void ejbActivate (); public void ejbPassivate(); public void ejbLoad(); public void ejbStore(); public void setEntityContext(EntityContext ctx); public void unsetEntityContext (); public void ejbRemove (); } Autres points –Les méthodes ejbCreate retournent void pour les CMP –Il nest pas nécessaire de développer des méthodes find pour les CMP

Stéphane Frenot - Département Télécommunication - SID - II - EjbEnt 260 Exemple Un système de paramétrage de reveil L EJB enregistre –Lheure de lalarme –La station sélectionnée –La bande sélectionnée

Stéphane Frenot - Département Télécommunication - SID - II - EjbEnt 261 Interface Remote public interface AlarmClock extends EJBObject { public Date getAlarmTime() throws RemoteException; public String getRadioStation() throws...; public boolean isFmSet() throws...; public void isFmset(boolean fm)... public void setAlarmTime(Date time)...;... setRadioStation(String station)... }

Stéphane Frenot - Département Télécommunication - SID - II - EjbEnt 262 Interface Home et PK classe AlarmClock primary Key Class: public class AlarmClock implements Serializable { pulic int idAlarm; } AlarmClock interface Home public interface AlarmClockHome extends EJBHome{ AlarmClock create() throws CreateException, RemoteException; AlarmClock create(Date time, String station, boolean fm) throws CreateException, RemoteException; AlarmClock findByPrimaryKey(AlarmClock id) throws FinderException, RemoteException; Enumeration findAllFMSettings() throws FinderException, RemoteException; }

Stéphane Frenot - Département Télécommunication - SID - II - EjbEnt 263 La classe du bean public class AlarmClockBean implements EntityBean{ public int idAlarm; transient protected EntityContext context; public String station; public String wakeUpTime; public boolean isFm; public void ejbActivate(){} public void ejbLoad(){} public void ejbPassivate(){} public void ejbRemove(){} public void ejbStore(){}...

Stéphane Frenot - Département Télécommunication - SID - II - EjbEnt 264 La suite de la classe du Bean... this.idAlarm=(int) (Math.random()*100000); Properties props=context.getEnvironment(); this.station=props.getProperty("Station"); this.isFm=props.getProperty("isFM"); this.wakeUpTime=props.getProperty("Time"); public void ejbCreate(String time, String station, boolean isFM){ this.idAlarm=(int)(Math.Random()*100000); this.wakeUpTime=time; this.station=station; this.isFM=new Boolean(isFM).toString(); } public void ejbPostCreate(){} public void ejbPostCreate(String time, String station, boolean isFm){}

Stéphane Frenot - Département Télécommunication - SID - II - EjbEnt 265 Le cas des BMP Il faut coder soit même la gestion de la persistance pour les méthodes ejbCreate, ejbRemove, ejbLoad, ejbStore La méthode ejbCreate renvoie dans ce cas une instance de la classe PK les méthodes ejbFind doivent être codées.