Mise à jour (enfin!) du dernier semestre de cours
This commit is contained in:
37
cours/A63/20090206-Seance1
Normal file
37
cours/A63/20090206-Seance1
Normal file
@ -0,0 +1,37 @@
|
||||
Vendredi 06 février 2009
|
||||
A63 Persistance de données
|
||||
M. LACHICHE
|
||||
|
||||
====== Présentation du module ======
|
||||
|
||||
Contrôle continu
|
||||
|
||||
2 parties : persistance puis XML.
|
||||
|
||||
Il faudra connaître Java et les Java Beans
|
||||
|
||||
====== Cours ======
|
||||
|
||||
Présentation du site Toplink JPA (oracle pour les tutos)
|
||||
|
||||
D'après le prof : TOUT est dans la doc. Chaque chapitre est auto - suffisant.
|
||||
|
||||
Première chose à faire après avoir été sur le site :
|
||||
|
||||
* Télécharger le logiciel (puis prise en main)
|
||||
* Lire quelques tutos
|
||||
* Aller sur Glassfish Project
|
||||
* Voir "Example"
|
||||
*
|
||||
|
||||
Plain ?Old? Java Object = POJO
|
||||
|
||||
===== Conseils pour les rendus =====
|
||||
|
||||
Préférer VIM plutôt que Netbeans ou Eclipse, ceci pour simplifier l'aide et les tutoriels rendus.
|
||||
|
||||
Ne jamais utiliser le code barre comme identifiant dans la BDD pour un objet. Il faut faire un AUTRE identifiant. (au cas où un jour on doit avoir deux code barre identiques).
|
||||
|
||||
La librairie permet de gérer pas mal de choses, il faut en profiter ;)
|
||||
|
||||
|
124
cours/A63/20090220-Seance2
Normal file
124
cours/A63/20090220-Seance2
Normal file
@ -0,0 +1,124 @@
|
||||
Vendredi 20 février 2009
|
||||
A63 Persistance de données
|
||||
M. LACHICHE
|
||||
|
||||
====== Cours ======
|
||||
|
||||
===== Shadow information =====
|
||||
|
||||
Toplink permet d'épargner toute l'instrumentation des attributs d'un objet pour renseigner son état d'insertion, de mise à jour, etc dans la base de données.
|
||||
|
||||
===== Mapping de l'héritage =====
|
||||
|
||||
Les BDD relationnel ne prennent pas en compte l'héritage => pas une raison pour éviter l'héritage.
|
||||
|
||||
Classe abstraite = classe qui ne peut pas avoir d'instance (abstract en java)
|
||||
|
||||
Personne est une classe abstraite.
|
||||
|
||||
Pour //mapper// l'héritage on a 4 solutions :
|
||||
* Tout mettre dans une table
|
||||
* Faire une table par classe concrète
|
||||
* Faire une table par classe, y compris les abstraites
|
||||
* Représenter les classes par une structure de classe générique
|
||||
|
||||
Les 3 premières solutions sont gérées par TopLink.
|
||||
|
||||
====== Exercice ======
|
||||
|
||||
On a une couche métier avec des Oiseaux, des Lézards, des Dragons.
|
||||
|
||||
Le dragon hérite du lézard et de l'oiseau.
|
||||
|
||||
L'oiseau possède les attributs suivants :
|
||||
* vitesseMaximal
|
||||
* tailleAiles
|
||||
|
||||
Le lézard possède les attributs suivants :
|
||||
* nombreGriffes
|
||||
* nombreCouleurs
|
||||
|
||||
Le dragon possède les attributs suivants :
|
||||
* nom
|
||||
* puissanceFeu
|
||||
|
||||
Intitulé de l'exercice : Adapter ce modèle métier aux 4 modèles de base de données expliqués dans le cours.
|
||||
|
||||
===== Corrigé =====
|
||||
|
||||
==== Solution 1 ====
|
||||
|
||||
On doit créer une table : ANIMAL.
|
||||
|
||||
Attributs :
|
||||
* identifiant
|
||||
* typeAnimal
|
||||
* nombreGriffe
|
||||
* nombreCouleur
|
||||
* tailleAiles
|
||||
* vitesseMaximale
|
||||
* nom
|
||||
* puissanceFeu
|
||||
|
||||
==== Solution 2 ====
|
||||
|
||||
Trois tables :
|
||||
* Oiseau
|
||||
* Lézard
|
||||
* Dragon
|
||||
|
||||
Attributs pour Oiseau :
|
||||
* id
|
||||
* vitesseMaximale
|
||||
* tailleAiles
|
||||
|
||||
Attributs pour Lézards :
|
||||
* identifiant
|
||||
* nombreGriffes
|
||||
* nombreCouleurs
|
||||
|
||||
Attributs pour Dragons :
|
||||
* identifiant
|
||||
* vitesseMaximal
|
||||
* tailleAiles
|
||||
* nombreGriffes
|
||||
* nombreCouleurs
|
||||
* puissanceFeu
|
||||
* nom
|
||||
|
||||
==== Solution 3 ====
|
||||
|
||||
Trois tables :
|
||||
* Oiseau
|
||||
* Lézard
|
||||
* Dragon
|
||||
|
||||
Avec chacune leur propres attributs (pas de redondance d'attributs dans Dragon.
|
||||
|
||||
Plusieurs solutions :
|
||||
* soit on met idAnimal partagé par tout le monde, comme avant
|
||||
* soit on adapte : on met idOiseau et idLézard en clé primaire pour dragon, et idOiseau et idLézard dans leur table respective
|
||||
|
||||
==== Solution 4 ====
|
||||
|
||||
On reprend le même modèle que dans le cours.
|
||||
|
||||
On remplit alors les classes, voilà tout.
|
||||
|
||||
----
|
||||
|
||||
Séance 3
|
||||
|
||||
====== Mapping des associations ======
|
||||
|
||||
Dans les SGBD, relation voulait dire association des domaines de la table.
|
||||
|
||||
Cependant, cela est actuellement utilisé pour des relations entres les tables.
|
||||
|
||||
Clés artificielles pour être indépendant du domaine d'application : si on a besoin de deux objets identiques mais différents pour nous (exemple : code barre des produits)
|
||||
|
||||
====== Mapping des propriétés de classe ======
|
||||
|
||||
Ne peuvent pas être géré comme des attributs ordinaires car sont là pour UNE classe pas pour ses instances si on veut.
|
||||
|
||||
|
Reference in New Issue
Block a user