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 nom prenom Marc Nom=« Dupont » <<instance de>> <<instance de>> <<instance de>> Marc Nom=« Dupont » prenom=« Marc » Paul Nom=« Durand » prenom=« Paul » Sophie Nom=«Albert » prenom=« Sophie»
Entité - classe - table Modèle Objet Modèle Entité-Relation Modèle SGBD
Relations « to-one » « to-many » Gilles:Tuteur nom=« Rossi » prenom=« Gilles » etudiants= Marc:Etudiant nom=« Dupont » prenom=« Marc » tuteur= :NSArray Sophie:Etudiant nom=« Albert » prenom=« Sophie » tuteur=
Relations « many-to-many » Marc:Etudiant nom=« Dupont » prenom=« Marc » professeurs= Bob:Professeur nom=« Peters » prenom=« Bob » etudiants= Sophie:Etudiant nom=« Albert » prenom=« Sophie » professeurs=... :NSArray Edith:Professeur etudiants=...
Relations « many-to-many » 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