slam4:orm:etudiants:pierrick

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:pierrick [2012/12/04 14:55] pierrickslam4:orm:etudiants:pierrick [2019/08/31 14:21] (Version actuelle) – modification externe 127.0.0.1
Ligne 2: Ligne 2:
 ===== Produits et catégories ===== ===== Produits et catégories =====
  
-  - 1.Comment est déclarée la table assurant la persistance d’un objet ?\\ +1.Comment est déclarée la table assurant la persistance d’un objet ?\\ 
-S'il hérite de KObject\\ +  S'il hérite de KObject 
-public class KCategorie extends KObject+  public class KCategorie extends KObject
  
-Comment est déclaré le mapping entre un membre de la classe et un champ de la table relationnelle ?\\ +2.Liste numérotéeComment est déclaré le mapping entre un membre de la classe et un champ de la table relationnelle ?\\ 
-hasMany(KLigne.class); un produit correspond à une ligne, il y a un produit par ligne +  hasMany(KLigne.class); un produit correspond à une ligne, il y a un produit par ligne 
-belongsTo(KCategorie.class); les produits correspondent à une catégorie, il y a des produits dans une catégorie+  belongsTo(KCategorie.class); les produits correspondent à une catégorie, il y a des produits dans une catégorie
  
-Comment est déclarée la clé primaire de la table ?\\ +3.Comment est déclarée la clé primaire de la table ?\\ 
-keyFields="id"; , la clé primaire est déclaré en keyFields+  keyFields="id"; , la clé primaire est déclaré en keyFields
  
-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\\+4.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\\
 ^  ^Java ^SQL  | ^  ^Java ^SQL  |
 |**Entier** | int | int |  |**Entier** | int | int | 
Ligne 19: Ligne 19:
 |**Flottant** | float | float|  |**Flottant** | float | float| 
  
-  - 5.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)\\+5.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)\\
  
 {{:slam4:orm:etudiants:mld.jpg?200|}} {{:slam4:orm:etudiants:mld.jpg?200|}}
  
 ==== Programme de test ==== ==== Programme de test ====
-  - 1.À quoi correspond la méthode kstart() ?\\+1.À quoi correspond la méthode kstart() ?\\ 
 +<code java|h code Java> 
 +public static void main(String[] args){ 
 + try{ 
 + Ko.kstart(); 
 +  
 + KCategorie aCategorie=new KCategorie("Presse"); 
 + aCategorie.add(Ko.kdatabase()); 
 +  
 + KProduit aProduit= new KProduit("Programmez!", 10, aCategorie); 
 + aProduit.add(Ko.kdatabase()); 
 +  
 + Ko.kstop(); 
 +
 +</code> \\ 
 +  La méthode kstart() correspond au démarrage de l'application java qui permet d'ajouter un produit dans la base de données et d'ajouter une catégorie 
 + 
 +2.Comment ont été traduits les liens objet entre le membre categorie et produits entre ces classes dans les tables de la base ?\\ 
 +  Cela a étais traduit par le fait que l'id de la table “catégorie” s'est mis en clé étrangère dans la table “produits”.  
 + 
 +3.Quelles requêtes SQL ont été créées par KObject pour réaliser la persistance ?\\ 
 +  Insertion de la valeur dans la catégorie 
 +  INSERT INTO Categorie(libelle) VALUES('Presse'
 + 
 +  Insertion de la valeur dans la table produit 
 +  INSERT INTO produit(idCategorie,prix,nom) VALUES('-1','3.0','Programmez!'
 +   
 +4.Que se passe t-il si l'insertion de la catégorie échoue ?\\ 
 +  Si l'insertion de la catégorie échoue et que l'on devait inserer un produit alors le produit ne sera pas inserer 
 +====== Chargement d'un objet ====== 
 +1.Précisez ce que charge exactement KObject lors du chargement d'un Objet\\ 
 +  Lors du chargement d'un Objet, KObject va charger tous les objets en relation.  
 +  Par exemple en chargeant une catégorie, tous les produits de cette catégorie seront chargés.  
 +  SQL : KDataBase.sendQuery → SELECT * FROM categorie WHERE categorie.id='13'  
 +  KOBJECT : KCategorie.loadFromDb → {id=13}  
 +  KOBJECT : KConstraintHasMany.load → class metier.KProduit  
 +  SQL : KDataBase.sendQuery → SELECT * FROM produit WHERE idCategorie='13' 
 + 
 +2.Précisez comment sont chargées les instances liées à un objet chargé pour les liens belongsTo et hasMany\\ 
 +  Les instances liées  à un object pour le lien __belongsTo__ est chargées dans un premier temps en récupérant par exemple le produit à l'aide d'un select puis il va récupérer la catégorie qui correspond à ce produit. 
 +  Les instances liées  à un object pour le lien __hasMany__ est chargées dans un premier temps la catégorie va être ainsi chargée puis ensuite les produits de cette catégories seront chargés 
 + 
 +3.En quoi consiste le chargement paresseux de KObject ?\\ 
 +  Le chargement paresseux de KObject consiste a charge par défaut tous les objets en rapport avec un autre.  
 +  Par exemple, quand il affiche tous les produits de cette catégorie, il les charges tous. 
 +   
 + ===== Chargement de listes d'objets ===== 
 +===== Projection ===== 
 +1.Interprétez et expliquez le résultat obtenu\\ 
 +===== Sélection ===== 
 +1.Combien de requêtes SQL sont exécutées par KObject ?\\ 
 +2.Comment l'interprétez vous ?\\ 
 +3.Combien de requêtes SQL sont maintenant exécutées par KObject ?\\ 
 +4.Comment l'interprétez vous ?\\ 
 +5.Interprétez les requêtes SQL exécutées par KObject\\ 
 +===== Sélection avec distinct et projection ===== 
 +1.Expliquer ce que fait le programme\\ 
 +====== Gestion des commandes ====== 
 +1.Justifiez l'appel des méthodes permettant de mettre en oeuvre la contrainte d'intégrité multiple 
  • slam4/orm/etudiants/pierrick.1354629351.txt.gz
  • Dernière modification : il y a 6 ans
  • (modification externe)