la page du cours
Introduction au mode application :
accès à une base de données par programme
Le matériel BD pour faire cette feuille est celui de la feuille "Premiers pas".
Il n'est pas nécessaire d'avoir terminé la feuille "Requêtes" pour cela.
Une bonne allure consiste à faire la première partie en une séance environ.
La seconde sera pour une prochaine séance.
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')).
Comment vérifier sans écrire pour l'instant de
fonction d'interrogation ? Faites-le.
-
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 dans cette question,
par exemple le premier
client pour Saint Trop par ordre alphabétique.
- On va écrire notre propre fonction de connexion, utilisable
par n'importe quel utilisaeur Oracle. Faites échouer sciemment la
connexion (comment ?). Quel est le message d'erreur ? (On gérera
ce type de problème bientôt.)
-
Même chose que dans l'exercice 4 ci-dessus, 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é.
-
Mêmes questions avec tous les ordres vus en interactif dans la feuille
"Premiers pas".
Mode application : 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.
©S. Abiteboul, E. Waller, B. Amann