la page du cours
Accès à une base de données en mode programme : introduction
Les transparents du TD : cliquer ici
Attention : il faut une nouvelle version du fichier
oraenv
Exemple de programme JDBC pour le TD
Une fonction Java pour lire au clavier
On considère votre table de billets avec client et destination (par exemple
celle de la feuille "Premiers pas").
-
Remplacez dans le programme exemple 'waller' par vos propres login et
password. Que se passe-t-il sinon ?
-
Ecrivez la méthode effectuant l'insertion d'un n-uplet constant
(par exemple ('Jules', 'Saint Lucien')).
Vérifiez depuis un client interactif.
-
Même question, mais avec des valeurs demandées à l'utilisateur.
-
Même question pour une interrogation elle aussi paramétrée.
- En récupérant un seul n-uplet pour commencer,
par exemple le premier client pour Saint Trop par ordre
alphabétique.
- Même chose question, mais traitez le cas général, en
affichant tous les n-uplets.
N'oubliez pas le cas où aucun
n-uplet n'est récupéré.
-
Gestion minimale des erreurs Oracle.
- Faites échouer sciemment la connexion (comment ?). Que se passe-t-il ?
- Mêmes questions en faisant échouer l'ordre "select" de la question 4
(comment ?).
- Rattrapez maintenant les exceptions, et affichez le message d'erreur et
le code.
Est-ce vraiment une bonne idee de rattraper toutes les exceptions ?
Donnez des exemples.
Approfondissement
Reprenez la fonction de connexion pour qu'elle soit utilisable
par n'importe quel utilisateur Oracle.
Mode programme : construction dynamique d'ordres SQL
Nous avons vu ci-dessus comment écrire des programmes Java
effectuant sur une base les ordres SQL suivants : mises à jour du
schéma ou de l'instance, requêtes, ces deux derniers cas pouvant
être paramétrés ou non par des valeurs dans les conditions de
sélection, les insertions ou la clause d'affectation des
modifications (update). Assurez-vous que vous avez bien
traité tous ces cas avant de passer aux manipulations ci-dessous, et
par exemple regroupez-les dans un unique programme dans lequel un menu
donne le choix parmi tous ces ordres, chacun codé dans une fonction.
Vérifiez à chaque fois immédiatement en gardant une session
SQL*Plus ouverte en permanence.
Dans cette partie, nous allons simplement généraliser les
manipulations ci-dessus en construisant nos ordres SQL au cours de
l'exécution du programme, par concaténation de chaînes de
caractères.
-
Ecrire une fonction, à insérer dans votre menu ci-dessus, qui
effectue une modification update t set a = 1, où les noms de
la table et de la colonne sont à saisir à runtime (dans cet
exercice on ne considérera pas de condition de sélection ni de
paramètre).
-
Ecrire une fonction qui effectue une sélection dans votre table Voyage, avec une clause where saisie dynamiquement. On
supposera que cette condition contient exactement deux paramètres :
un entier et une chaîne.
-
Nous ne le ferons pas en TD (pour cause de priorités), mais
dans le cas général de
construction dynamique pour les ordres de manipulation de l'instance,
on saisit : nom de table, colonnes en nombre quelconque, condition de
sélection et clause d'affectation avec un nombre quelconque de
paramètres.
Appel de procedure PL/SQL.