Mapping Objet-Relationnel Enterprise Object Framework I.
-
Upload
toussaint-coulon -
Category
Documents
-
view
104 -
download
0
Transcript of Mapping Objet-Relationnel Enterprise Object Framework I.
Mapping Objet-Relationnel
Enterprise Object Framework I
Objets métiers - objets persistents
•Les objets métiers sont les objets représentant votre
environnement
•Ces objets ont souvent une durée de vie supérieure à
celle de l ’application : ce sont des objets persistents
•Un objet persitent sauvegarde son état dans un système
de stockage permanent:
– SGBD relationnel
– annuaire LDAP
– …
Enterprise Object Framework
•Permet d ’établir la correspondance entre la base de
données et les objets métiers
•EOF fournit les classes prenant en charge les accès à la
base de donnée
•EOF s ’appuie sur JDBC (depuis WebObjects 5.0)
Enterprise Object Framework
Application 1
Objets Métiers
Oracle MySql Openbase
EOF
Application 2
EOModel
•L ’EOModel décrit la correspondance entre objets
métiers et bases de données
•L ’EOModel se présente sous la forme d ’un fichier texte
•L ’EOModel est intégré comme ressource dans un projet
•L ’EOModel contient les informations pour la connexion
à la base de donnée
EOModeler
•Pour créer et éditer l ’EOModel de manière conviviale
•Pour générer le SQL correspondant au modèle objet
•Pour générer les sources Java des objets du modèle
•Pour éditer des requêtes en mode graphique
Entité - classe - table
ETUDIANT
ID Nom Prénom
10002 Dupont Marc
10003 Durand Paul
10004 Albert Sophie
Marc
Nom=« Dupont »prenom=« Marc »
Sophie
Nom=«Albert »prenom=« Sophie»
Paul
Nom=« Durand »prenom=« Paul »
Etudiant
nomprenom
<<instance de>><<instance de>>
<<instance de>>
Entité - classe - table
Modèle Entité-Relation Modèle ObjetModèle SGBD
Relations « to-one » « to-many »
ETUDIANTID Nom Prénom ID Tuteur
10002 Dupont Marc 12007
10003 Durand Paul 12005
10004 Albert Sophie 12007
TUTEURID Nom Prénom
12007 Rossi Gilles
12005 Simon Pierre
Marc:Etudiant
nom=« Dupont »prenom=« Marc »tuteur=
Gilles:Tuteur
nom=« Rossi »prenom=« Gilles »etudiants=
Sophie:Etudiant
nom=« Albert »prenom=« Sophie »tuteur=
:NSArray
Relations « many-to-many »
ETUDIANTID Nom Prénom
10002 Dupont Marc
10003 Durand Paul
10004 Albert Sophie
PROFESSEURID Nom Prénom
11003 Clari Edith
11004 Peters Bob
ETUD_PROFID_ETUD ID_PROF
10002 11003
10002 11004
10003 11004
Marc:Etudiant
nom=« Dupont »prenom=« Marc »professeurs=
Bob:Professeur
nom=« Peters »prenom=« Bob »etudiants=
Sophie:Etudiant
nom=« Albert »prenom=« Sophie »professeurs=...
:NSArray
:NSArray
Edith:Professeur
nom=« Peters »prenom=« Bob »etudiants=...
Relations « many-to-many »
ETUDIANTID Nom Prénom
10002 Dupont Marc
10003 Durand Paul
10004 Albert Sophie
PROFESSEURID Nom Prénom
11003 Clari Edith
11004 Peters Bob
ETUD_PROFID_ETUD ID_PROF
10002 11003
10002 11004
10003 11004
Il n ’est pas nécessaire de créer une classe correspondant à la table de jointure dans le modèle objet
EOModeler permet de masquer la table de jointure (« Flatten »)
Les classes de EOF
EOGenericRecord
•classe par défaut utilisée par EOF•stocke les valeurs des attributs et des relations•implémente l ’interface EOEnterpriseObject
Classes personnalisées pour objets métier
•sous-classes de EOGenericRecord•hérite de l’interface EOEnterpriseObject•permettent l’ajout de fonctionnalités supplémentaires
Les classes personnalisées
Template généré avec EOModeler
Les classes personnalisées
public class Etudiant extends EOGenericRecord {public Etudiant() {
super();}public String nom() {
storedValueForKey("nom");}public void setNom(String value) {
takeStoredValueForKey(value,"nom");}...
}
Mapping Objet-Relationnel
Enterprise Object Framework I