Ceci est une ancienne révision du document !
Produits et catégories
1) Comment est déclarée la table assurant la persistance d’un objet ?
La table assurant la persistance d'un objet est déclarée s’il hérite de KObject –> public class KCategorie extends KObject.
2) Comment est déclaré le mapping entre un membre de la classe et un champ de la table relationnelle ?
- code Java
hasMany(KLigne.class); belongsTo(KCategorie.class);
“hasMany(KLigne.class)” un produit correspondant à 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.
3) Comment est déclarée la clé primaire de la table ?
- code Java
keyFields="id";
keyFields=“id”; , la clé primaire est déclaré en keyFields
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.
int | int | entier |
string | varchar | chaine |
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)
Programme de test
Analysez le code du programme et répondez aux questions en vous aidant au besoin de la documentation :
1) À quoi correspond la méthode kstart() ?
- code Java
public static void main(String[] args) { Ko.useCache=true; KCache.loadAllCache(); try { Ko.kstart();
La méthode kstart() correspond au démarrage du test de l'ajout d'un produit dans la base de données
2) Comment ont été traduits les liens objet entre le membre catégorie et produits entre ces classes dans les tables de la base ?
Les liens objets entre “catégorie” et “produits” entre ces classes dans les tables de la base de données ont été traduit par le simple fait que l'id de la table “catégorie” s'est mis en clé étrangère de la table “produits”.
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.
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.
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
2) Précisez comment sont chargées les instances liées à un objet chargé pour les liens belongsTo et hasMany
3) En quoi consiste le chargement paresseux de KObject ?
Chargement de listes d'objets
Interrogation de données avec KObject :
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 ?
Remplacer le lien belongsTo sur la classe Produit par :
- |h code Java
belongsTo(KCategorie.class).setLazy(true);
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.