mapping objet-relationnel enterprise object framework i

Post on 04-Apr-2015

104 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

top related