| Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente |
| slam4:orm:etudiants:bastien [2012/11/27 17:19] – mesnil | slam4:orm:etudiants:bastien [2019/08/31 14:21] (Version actuelle) – modification externe 127.0.0.1 |
|---|
| | ===== Création des classes métier ===== |
| | |
| **Produit :** | **Produit :** |
| * **id** (primary key) | * **id** (primary key) |
| **Categorie :** | **Categorie :** |
| * **id** (primary key) | * **id** (primary key) |
| | |
| | ==== Produits et catégories ==== |
| |
| <html><div class="towrite"> | <html><div class="towrite"> |
| <li><div class="li">Réaliser un tableau montrant la correspondance de type (entier, chaine, etc.) entre les propriétés d’une classe et les champs d’une table.</div></li></html> | <li><div class="li">Réaliser un tableau montrant la correspondance de type (entier, chaine, etc.) entre les propriétés d’une classe et les champs d’une table.</div></li></html> |
| | |
| ^ Nom ^Type de la propriété ^Type du champ ^ | |
| |**Hue Pierrick** | 02.33.17.06.82\\ Contact téléphonique, envoi du mail de CV et lettre de motivation| {{ ::question.png?nolink |}} | | |
| |
| <html><br /><br /> | ^ ^Java ^SQL ^ |
| | | Entier | int | int | |
| | | Chaîne de caractères | String | String | |
| | | Flottant | Float | Float | |
| | |
| | <html><br /> |
| <li><div class="li">Montrez à l’aide d’un schéma (par ex. deux classes liées au dessus de deux tables liées) comment se paramètre le lien bidirectionnel entre deux classes (en spécifiant les éléments à fournir dans le constructeur)</div></li> | <li><div class="li">Montrez à l’aide d’un schéma (par ex. deux classes liées au dessus de deux tables liées) comment se paramètre le lien bidirectionnel entre deux classes (en spécifiant les éléments à fournir dans le constructeur)</div></li> |
| | </html> {{:slam4:orm:etudiants:schemab.jpg?200|}} <html> <br /><br /> |
| | </ol> |
| | </div></html> |
| | |
| | ==== Programme de test ==== |
| | |
| | <html><div class="towrite"> |
| | Analysez le code du programme et répondez aux questions en vous aidant au besoin de la documentation : |
| | <ol> |
| | <li><div class="li">À quoi correspond la méthode kstart() ?</div></li> |
| | La méthode kstart() permet la démarrage de l'application. |
| <br /><br /> | <br /><br /> |
| | <li><div class="li">Comment ont été traduits les liens objet entre le membre <b>categorie</b> et <b>produits</b> entre ces classes dans les tables de la base ?</div></li> |
| | Le lien entre le membre categorie et produits a été traduit par l'affectation d'une catégorie à l'objet produit, ce qui équivalent à une clé étrangère. |
| | <br /><br /> |
| | <li><div class="li">Quelles requêtes SQL ont été créées par KObject pour réaliser la persistance ?</div></li> |
| | Insertion de la catégorie : INSERT INTO categorie(libelle) VALUES('Presse2')<br /> |
| | Insertion du produit : INSERT INTO produit(idCategorie,prix,nom) VALUES('7','10.0','Programmez!!') |
| | <br /><br /> |
| | <li><div class="li">Que se passe t-il si l'insertion de la catégorie échoue ?</div></li> |
| | Si l'insertion de la catégorie échoue, le produit n'est pas inséré. |
| | <br /><br /> |
| | </ol> |
| | </div></html> |
| | |
| | ===== Chargement d'un objet ===== |
| | |
| | <html><div class="towrite"> |
| | A partir de ces 2 programmes et de leur exécution : |
| | <ol> |
| | <li><div class="li">Précisez ce que charge exactement KObject lors du chargement d'un Objet</div></li> |
| | KObject va charger tout les objets qui sont en relation, par exemple, pour une catégorie, il chargera tout les produits de cette catégorie :<br /> |
| | SQL : KDataBase.sendQuery → SELECT * FROM categorie WHERE categorie.id='13' <br /> |
| | SQL : KDataBase.sendQuery → SELECT * FROM produit WHERE idCategorie='13' <br /> |
| | |
| | <br /><br /> |
| | <li><div class="li">Précisez comment sont chargées les instances liées à un objet chargé pour les liens <b>belongsTo</b> et <b>hasMany</b></div></li> |
| | |
| | <li><div class="li">En quoi consiste le chargement paresseux de KObject ?</div></li> |
| | |
| | </ol> |
| | </div></html> |
| | |
| | ===== Chargement de listes d'objets ===== |
| | |
| | <html><div class="towrite"> |
| | A partir du programme : |
| | <ol> |
| | <li><div class="li"> Combien de requêtes SQL sont exécutées par KObject ?</div></li> |
| | <li><div class="li"> Comment l'interprétez vous ?</div></li> |
| | </ol> |
| | </div></html> |
| | |
| | <html><div class="towrite"> |
| | <ol> |
| | <li><div class="li"> Combien de requêtes SQL sont maintenant exécutées par KObject ?</div></li> |
| | <li><div class="li"> Comment l'interprétez vous ?</div></li> |
| | </ol> |
| | </div></html> |
| | |
| | <html><div class="towrite"> |
| | A partir du programme : |
| | <ol> |
| | <li><div class="li"> Interprétez les requêtes SQL exécutées par KObject</div></li> |
| | </ol> |
| | </div></html> |
| | |
| | ==== Sélection avec distinct et projection ==== |
| | |
| | <html><div class="towrite"> |
| | A partir du code et de son exécution : |
| | <ol> |
| | <li><div class="li"> Expliquer ce que fait le programme</div></li> |
| </ol> | </ol> |
| </div></html> | </div></html> |