Ceci est une ancienne révision du document !
Documentation Kobject
Modèle relationnel
1) Produit/Catégorie
- Un produit appartient à une et une seule catégorie.
- Une catégorie peut contenir zéro ou plusieurs produits.
2) Produit/Ligne/Commande
- Un produit correspond à une ligne dans une commande.
- Une commande peut comporter plusieurs produits.
Première partie
Création des classes métier: Produits et catégories.
1)Comment est déclarée la table assurant la persistance d’un objet ?
–> Elle hérite de la classe Kobject.
2)Comment est déclaré le mapping entre un membre de la classe et un champ de la table relationnelle ?
–> 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.
- code Java
hasMany(KLigne.class); belongsTo(KCategorie.class);
3)Comment est déclarée la clé primaire de la table ?
–> la clé primaire de la table est déclarée avec un keyFields.
- code Java
keyFields="id";
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.
propriété d'une classe | champs d'une table | type |
---|---|---|
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)
Modèle relationnel :
Diagramme de classes :
Deuxième partie
Programme de test:
1) À quoi correspond la méthode kstart() ?
La méthode kstart() permet le lancement d'une application Kobject.
- code Java
Ko.kstart();
2)Comment ont été traduits les liens objet entre le membre categorie et produits entre ces classes dans les tables de la base ?
L'id de la categorie correspond à la clé primaire de la table catégorie.
Dans la table produit l'idCategorie correspond à la clé étrangère en relation à l'id de la table categorie.
Ces deux tables sont donc en relation par le biais de l'id categorie.
3)Quelles requêtes SQL ont été créées par KObject pour réaliser la persistance ?
Pour réliser ce test qui consisté à instancier une catégorie et un produit appartenant à cette catégorie, KObject a utilisé deux requète SQL d'insertion.
Ces requêtes sont visibles dans la console lors de l'execution du test.
SQL : KDataBase.execute → INSERT INTO categorie(libelle) VALUES('Presse')
SQL : KDataBase.execute → INSERT INTO produit(idCategorie,prix,nom) VALUES('19','3.0','Programmez!')