Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
slam4:orm:etudiants:clement [2012/11/29 11:56] – clem | slam4:orm:etudiants:clement [2019/08/31 14:21] (Version actuelle) – modification externe 127.0.0.1 | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ====== TP-TD6 - Comparaison de frameworks de mapping relationnel/ | + | ======= TP-TD6 - Comparaison de frameworks de mapping relationnel/ |
+ | ===== Création des classes métier ===== | ||
+ | ==== Produits et catégories ==== | ||
+ | |||
+ | 1. La table assurant la persistance d’un objet est déclaré en héritant de la classe Kobject : | ||
+ | public class KProduit extends KObject | ||
+ | |||
+ | 2. Le mapping entre un membre de la classe et un champ de la table relationnelle est déclaré dans le constructeur en tant que membre : | ||
+ | hasMany(KLigne.class); | ||
+ | belongsTo(KCategorie.class); | ||
+ | |||
+ | 3. La clé primaire de la table est déclaré avec un keyFields. | ||
+ | keyFields=" | ||
+ | |||
+ | 4. | ||
+ | ^Propriété d'une classe ^Champs d’une table ^Type ^ | ||
+ | |int |int |entier | | ||
+ | |string |varchar |chaine | | ||
+ | |||
+ | 5. Le lien bidirectionnel entre deux classes se paramètre par : | ||
+ | |||
+ | ==== Programme de test ==== | ||
+ | |||
+ | 1. La méthode kstart() correspond au démarrage de l' | ||
+ | |||
+ | 2. Les liens objet entre le membre **catégorie** et **produits** entre ces classes dans les tables de la base ont été traduit par le fait que l'id de la table **catégorie** s'est mis en clé étrangère de la table **produits**. | ||
+ | |||
+ | 3. Les requêtes SQL qui ont été créées par KObject pour réaliser la persistance sont : | ||
+ | * INSERT INTO Categorie(libelle) VALUES(' | ||
+ | * INSERT INTO produit(idCategorie, | ||
+ | |||
+ | 4. Si l' | ||
+ | |||
+ | ===== Chargement d'un objet ===== | ||
+ | === Programme de chargement d'une catégorie === | ||
+ | |||
+ | 1. Ce que charge exactement KObject lors du chargement d'un Objet sont l' | ||
+ | Par exemple : En chargent l' | ||
+ | |||
+ | 2. Les instances liées à un objet chargé pour les liens belongsTo et hasMany sont chargées grâce à des requêtes SQL. Dans le cas d'un hasMany, KObject sélectionne l' | ||
+ | Pour la situation d'un belongsTo, kObject sélectionne l' | ||
+ | |||
+ | 3. Le chargement paresseux de KObject consiste à | ||
+ | |||
+ | ===== Chargement de listes d' | ||
+ | === Projection === | ||
+ | |||
+ | 1. Résultat obtenu : | ||
+ | |||
+ | === Sélection === | ||
+ | |||
+ | 1. " | ||
+ | |||
+ | 2. On peut l’interpréter par | ||
+ | |||
+ | Remplacer le lien belongsTo sur la classe Produit par : | ||
+ | belongsTo(KCategorie.class).setLazy(true); | ||
+ | |||
+ | 1. " | ||
+ | |||
+ | 2. On peut l' | ||
+ | |||
+ | Exécutez à nouveau le programme. | ||
+ | |||
+ | 1. On peut interpréter les requêtes SQL exécutées par KObject par | ||
+ | |||
+ | === Sélection avec distinct et projection === | ||
+ | |||
+ | 1. Ce programme | ||
+ | |||
+ | ===== Gestion des commandes ===== | ||
+ | |||
+ | 1. L' | ||
+ | |||
+ | ==== Création de commandes ==== | ||
+ | |||
+ | 1. Code commenté de CreateCommandeGood.java | ||
+ | |||
+ | 2. L' | ||
+ | |||
+ | ===== Test Web ===== | ||
- | ^Bla ^Bla ^Bla ^ | ||
- | | | | | | ||
- | | | | | |