slam4:orm:etudiants:maxime

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
slam4:orm:etudiants:maxime [2012/12/04 15:49] maxime170492slam4:orm:etudiants:maxime [2019/08/31 14:21] (Version actuelle) – modification externe 127.0.0.1
Ligne 60: Ligne 60:
 **3) Quelles requêtes SQL ont été créées par KObject pour réaliser la persistance ?** \\ **3) Quelles requêtes SQL ont été créées par KObject pour réaliser la persistance ?** \\
  
-Afin de réaliser la persistance, KObject a créée les requêtes SQL INSERT, UPDATE et DELETE. \\+Afin de réaliser la persistance, KObject a utilisé les requêtes SQL d'insertion suivantes : \\ 
 +(visibles dans la console lors du test) \\ 
 +INSERT INTO categorie(libelle) VALUES('Presse') \\ 
 +INSERT INTO produit(idCategorie,prix,nom) VALUES('19','3.0','Programmez!')  \\
  
 **4) Que se passe t-il si l'insertion de la catégorie échoue ?** \\ **4) Que se passe t-il si l'insertion de la catégorie échoue ?** \\
  
-En cas d'échec de l'insertion de la catégorie, il est impossible par la suite d'insérer des produits car un produits appartient à une catégorie.+En cas d'échec de l'insertion de la catégorie, il est impossible par la suite d'insérer des produits car un produits appartient à une catégorie et ces deux objets sont liés par l'id de la catégorie. 
 + 
 + 
 +====== Chargement d'un objet ======  
 + 
 + 
 +//Observation du chargement d'un objet, par l'intermédiaire de sa clé primaire.// \\ 
 + 
 +**1) Précisez ce que charge exactement KObject lors du chargement d'un Objet** \\ 
 + 
 +Lors du chargement d'un Objet, KObject va charger les catégories mais aussi les objets de ces catégories \\ 
 +SELECT * FROM categorie WHERE categorie.id='1' \\ 
 +KOBJECT : KCategorie.loadFromDb → {id=1} \\ 
 +KOBJECT : KConstraintHasMany.load → class metier.KProduit \\ 
 +SELECT * FROM produit WHERE idCategorie='1' \\ 
 +KOBJECT : KProduit.loadFromDb → {id=52} \\ 
 +[...] \\ 
 +KOBJECT : KProduit.loadFromDb → {id=182} \\ 
 + 
 + 
 +**2) Précisez comment sont chargées les instances liées à un objet chargé pour les liens belongsTo et hasMany** \\ 
 + 
 +belongsTo: \\ 
 +Pour charger les instances liées à un objet en Many to One, par exemple un produit, KObject va dans un premier temps récupérer le produit à l'aide d'un select. Ensuite KObject va récupérer la catégorie correspondante. \\ 
 +Console: \\ 
 +SQL : KDataBase.sendQuery → SELECT * FROM produit WHERE produit.id='52' \\ 
 +SQL : KDataBase.sendQuery → SELECT * FROM Ligne WHERE idProduit='52' \\ 
 +SQL : KDataBase.sendQuery → SELECT * FROM categorie WHERE id='1' \\ 
 +hasMany: \\ 
 +Pour le cas d'un One To Many KObject va effectuer deux requêtes SQL. Dans un premier temps la catégorie sera chargée ensuite tous les produits appartenant à cette catégorie seront chargés. \\ 
 +Console: \\ 
 +SQL : KDataBase.sendQuery → SELECT * FROM categorie WHERE categorie.id='1' \\ 
 +SQL : KDataBase.sendQuery → SELECT * FROM produit WHERE idCategorie='1' \\ 
 + 
 +**3) En quoi consiste le chargement paresseux de KObject ?** \\ 
 + 
 + 
 +Le chargement dit "paresseux" de KObject consiste a ne pas charger chaque objets d'un objet précis à moins de lui en donner l'instruction. \\ 
 +Exemple : Il n'affichera pas tous les produits d'une catégorie s'il l'utilisateur ne le demande pas. \\ 
 +Un peu comme Quentin .. :-x \\ 
 +====== Chargement de listes d'objets ====== 
 + 
 +//Interrogation de données avec KObject ://  \\ 
 + 
 + 
 +===== Projection ===== 
 + 
 +**1) Interprétez et expliquez le résultat obtenu** \\ 
 + 
 +Voici le résultat obtenu : \\ 
 + 
 +<code java|h code java> 
 +    System.out.println(categories.showWithMask("{libelle}:\n{produits}\n")); 
 +</code>  
 + 
 +Explication : On affiche à l'écran les libellés et les produits des catégories affichés par ordre alphabétique. 
 +===== Sélection ===== 
 + 
 +**1) Combien de requêtes SQL sont exécutées par KObject ?** 
 + 
 +**2) Comment l'interprétez vous ?** 
 + 
 +  
 +//Remplacer le lien belongsTo sur la classe Produit par :// \\ 
 + 
 +<code java |h code Java> 
 +belongsTo(KCategorie.class).setLazy(true); 
 +</code> 
 + 
 +**1) Combien de requêtes SQL sont maintenant exécutées par KObject ?** \\ 
 + 
 + 
 +**2) Comment l'interprétez vous ?** \\ 
 + 
 +//A partir du programme :// \\ 
 + 
 +**1) Interprétez les requêtes SQL exécutées par KObject** \\ 
 + 
 + 
 + 
 +===== Sélection avec distinct et projection =====  
 + 
 + 
 +//A partir du code et de son exécution :// \\ 
 + 
 +**1) Expliquer ce que fait le programme** \\ 
 + 
 + 
 +====== Gestion des commandes ====== 
 + 
 +===== Commande ===== 
 +===== Ligne ===== 
 + 
 +**1) Justifiez l'appel des méthodes permettant de mettre en oeuvre la contrainte d'intégrité multiple** \\ 
 + 
 + 
 +====== Création de commandes ====== 
 + 
 + 
 +**1) Analysez puis commentez chaque ligne (dans le code) de ce programme** \\ 
 + 
 + 
 +**2) Vérifier que l'exécution a effectué les ajouts dans la base de données** \\ 
 + 
 + 
 + 
 +====== Test Web ====== 
 + 
 +... \\ 
 +//Ajouter toutes les classes (servlet) et méthodes nécessaires pour éviter d'avoir à effectuer un quelconque traitement dans les JSP.//  
 + 
 + 
 +Document réalisé par :  
 +--- //[[maxime170492@gmail.com|maxime]] // 
 + 
 + 
 + 
  
  
Ligne 70: Ligne 190:
  
  
-     
  • slam4/orm/etudiants/maxime.1354632577.txt.gz
  • Dernière modification : il y a 6 ans
  • (modification externe)