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:58] – 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 ===== |
- | <div style="center"> | + | ==== Produits et catégories ==== |
- | </ | + | |
- | ^Bla ^Bla ^Bla ^ | + | 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. | ||
+ | | ||
+ | |||
+ | 4. | ||
+ | ^Propriété d'une classe | ||
+ | |int |int |entier | ||
+ | |string | ||
+ | |||
+ | 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 ===== |