Mapping Objet-Relationnel Enterprise Object Framework I.

15
Mapping Objet- Relationnel Enterprise Object Framework I

Transcript of Mapping Objet-Relationnel Enterprise Object Framework I.

Page 1: Mapping Objet-Relationnel Enterprise Object Framework I.

Mapping Objet-Relationnel

Enterprise Object Framework I

Page 2: 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

– …

Page 3: Mapping Objet-Relationnel Enterprise Object Framework I.

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)

Page 4: Mapping Objet-Relationnel Enterprise Object Framework I.

Enterprise Object Framework

Application 1

Objets Métiers

Oracle MySql Openbase

EOF

Application 2

Page 5: Mapping Objet-Relationnel Enterprise Object Framework I.

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

Page 6: Mapping Objet-Relationnel Enterprise Object Framework I.

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

Page 7: Mapping Objet-Relationnel Enterprise Object Framework I.

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>>

Page 8: Mapping Objet-Relationnel Enterprise Object Framework I.

Entité - classe - table

Modèle Entité-Relation Modèle ObjetModèle SGBD

Page 9: Mapping Objet-Relationnel Enterprise Object Framework I.

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

Page 10: Mapping Objet-Relationnel Enterprise Object Framework I.

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=...

Page 11: Mapping Objet-Relationnel Enterprise Object Framework I.

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 »)

Page 12: Mapping Objet-Relationnel Enterprise Object Framework I.

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

Page 13: Mapping Objet-Relationnel Enterprise Object Framework I.

Les classes personnalisées

Template généré avec EOModeler

Page 14: Mapping Objet-Relationnel Enterprise Object Framework I.

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");}...

}

Page 15: Mapping Objet-Relationnel Enterprise Object Framework I.

Mapping Objet-Relationnel

Enterprise Object Framework I