Dans cette leçon, vous allez écrire une méthode qui renvoie la
valeur de colonne QUANTITY_SHIPPED de la table INVENTORY_LEVELS.
Les instructions SQL générées par pureQuery sont toutes utiles,
mais des instructions sur mesure sont également nécessaires pour les applications
que vous envisagez d'écrire. Par exemple, l'une de vos applications aura
besoin d'une instruction SELECT pour déterminer le nombre d'unités d'un produit donné
expédiées au cours d'un mois spécifique d'une année donnée. L'application
ne devra pas retourner de valeurs autres que le nombre d'unités
expédiées.
pureQuery permet d'ajouter facilement la déclaration de cette
nouvelle méthode à l'interface, puis de régénérer automatiquement la classe d'implémentation
de sorte qu'elle implémente la méthode.
Pour ajouter une nouvelle méthode
à l'interface, procédez comme suit :
- Ouvrez l'onglet InventoryLevelsData.java.
- Sous la deuxième méthode getInventoryLevels() (celle utilisant
aux zones individuelles), ajoutez quelques lignes vierges au fichier puis
saisissez les lignes suivantes :
// Select QUANTITY_SHIPPED by parameters
@Select(sql = "SELECT FROM ")
Conseil : Ne vous préoccupez pas des marqueurs d'erreur dans
l'éditeur. Ils disparaîtront une fois la déclaration de la méthode terminée.
- Ajoutez le schéma GSDB au code :
- Dans le code que vous venez de saisir, placez le curseur
juste avant le deuxième guillemet et, tout en maintenant la touche
CTRL enfoncée, appuyez sur la barre d'espace. Une petite fenêtre s'affiche
sous la ligne en cours. Cette fenêtre répertorie les éléments SQL proposés
pour l'instruction.
- Dans la petite fenêtre, faites défiler jusqu'à la
liste des schémas dans la base de données GSDB et cliquez deux fois sur le schéma GOSALES.
- Ajoutez la table INVENTORY_LEVELS au code :
- Dans le code, ajoutez un point après le schéma et appuyez
simultanément sur la touche CTRL et la barre d'espace pour afficher une petite fenêtre contant la liste
des tables figurant dans ce schéma.
- A l'aide de la touche fléchée vers le haut, faites défiler jusqu'à la table INVENTORY_LEVELS
et appuyez sur la touche Entrée.
- Terminez l'instruction SQL. Vous souhaitez sélectionner la
la valeur de la colonne QUANTITY_SHIPPED, mais également ajouter le
nom de la colonne rapidement et sans erreur de saisie.
- Placez le curseur entre les deux espaces
après le mot clé SELECT et, tout en maintenant la touche
CTRL enfoncée, appuyez sur la barre d'espace. Une autre fenêtre s'affiche sous la ligne en cours.
Cette fenêtre répertorie les colonnes figurant dans la table INVENTORY_LEVELS.
- Faites défiler jusqu'à la colonne QUANTITY_SHIPPED en cliquant sur
lz touche fléchée vers le bas et appuyez sur la touche Entrée.
- Insérez la clause WHERE de sorte que, comme pour l'instruction SELECT,
les quatre colonnes de clé primaire y soient incluses.
- Formatez l'instruction SQL afin de l'ajuster à l'écran. Au cours des étapes précédentes, l'écriture de l'instruction vous a probablement
tellement déporté sur la droite que vous ne pouvez pas voir le reste du code.
Figure 1. La fin de l'instruction SELECT
Fort heureusement, il est inutile de faire défiler la fenêtre vers la droite
chaque fois que vous voulez lire l'instruction SELECT. Pour formater l'instruction SQL :
- Placez le curseur dans l'instruction. Cliquez avec le bouton droit de la souris
sur l'instruction et sélectionnez .
- Revenez côté gauche de la fenêtre. Notez que l'instruction
SQL est désormais formatée sur plusieurs lignes.
- Ecrivez la méthode de sorte qu'elle retourne un nombre entier avec la
valeur de QUANTITY_SHIPPED et qu'elle utilise les zones individuelles comme paramètres.
int getQuantityShipped(short inventoryYear, short inventoryMonth,
int warehouseBranchCode, int productNumber);
- Testez l'instruction SELECT. Vous réalisez que vous
avez écrit la méthode sans tester au préalable l'instruction SELECT. pureQuery
vous permet de la tester depuis l'éditeur Java.
Pour tester l'instruction, placez le curseur dans l'instruction,
cliquez avec le bouton droit de la souris sur l'instruction et sélectionnez .
L'instruction utilisant des
marqueurs de paramètre dans la clause WHERE, vous devez indiquer à pureQuery
quelles valeurs utiliser.
La fenêtre Spécifiez les valeurs des variables hôte s'ouvre.
- Dans la fenêtre Spécifiez les valeurs des variables hôte,
saisissez les valeurs suivantes :
La vue Résultats SQL s'ouvre.
- Dans la vue Résultats SQL, sélectionnez la
première ligne puis l'onglet Result1 (Résultat 1) pour
afficher le résultat.
Dans la vue Résultats, vous pouvez constater
que l'instruction SELECT s'est exécutée sans erreur.
Lorsque vous sauvegardez l'interface, pureQuery régénère automatiquement
le fichier InventoryLevels_DataImpl.java de sorte qu'il implémente la nouvelle
méthode.