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 19:07] – 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 ==== | + | ===== Création des classes métier |
==== Produits et catégories ==== | ==== Produits et catégories ==== | ||
- | 1.La table assurant la persistance d’un objet est déclaré | + | 1. La table assurant la persistance d’un objet est déclaré |
+ | public class KProduit extends KObject | ||
- | 2.Le mapping entre un membre de la classe et un champ de la table relationnelle est déclaré | + | 2. Le mapping entre un membre de la classe et un champ de la table relationnelle est déclaré |
+ | hasMany(KLigne.class); | ||
+ | belongsTo(KCategorie.class); | ||
- | 3.La clé primaire de la table est déclaré | + | 3. La clé primaire de la table est déclaré |
+ | keyFields=" | ||
4. | 4. | ||
^Propriété d'une classe ^Champs d’une table ^Type ^ | ^Propriété d'une classe ^Champs d’une table ^Type ^ | ||
- | | | | | | + | |int |int |entier |
- | | | | | | + | |string |
5. Le lien bidirectionnel entre deux classes se paramètre par : | 5. Le lien bidirectionnel entre deux classes se paramètre par : | ||
Ligne 18: | Ligne 22: | ||
==== Programme de test ==== | ==== Programme de test ==== | ||
- | 1.La méthode kstart() correspond | + | 1. La méthode kstart() correspond |
- | 2.Les liens objet entre le membre **catégorie** et **produits** entre ces classes dans les tables de la base ont été traduit par | + | 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 : | + | 3. Les requêtes SQL qui ont été créées par KObject pour réaliser la persistance sont : |
- | * Liste à puce | + | * INSERT INTO Categorie(libelle) VALUES(' |
- | * | + | * INSERT INTO produit(idCategorie, |
- | 4.Si l' | + | 4. Si l' |
- | ===== Chargement d'un objet ==== | + | ===== Chargement d'un objet ===== |
=== Programme de chargement d'une catégorie === | === Programme de chargement d'une catégorie === | ||
- | 1. | + | 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 ===== |