Vous êtes sur la page 1sur 6

%DVHV GH GRQQpHV UHODWLRQQHOOHV  GHV FRQFHSWV DX GpYHORSSHPHQW GDSSOLFDWLRQV DYHF 2UDFOH 7H[WHV GHV 7UDYDX[ SUDWLTXHV

  2EMHFWLIV HW RUJDQLVDWLRQ GX 73  1.1 Prsentation des applications ----------------------------------------------- 2 ,QVWDOODWLRQ HW FRQILJXUDWLRQV  2.1 2.2  Prrequis ------------------------------------------------------------------------- 2 Installations propres au TP -------------------------------------------------- 3

3URJUDPPHV H[HPSOHV  3.1 3.2 3.3 3.4 3.5 3.6 Utilisation dun Statement simple------------------------------------------- 3 Utilisation dun PreparedStatement---------------------------------------- 4 Utilisation dun CallableStatement ----------------------------------------- 4 Requte dynamique ----------------------------------------------------------- 4 Gestion des transactions ----------------------------------------------------- 5 Interrogation du schma------------------------------------------------------ 6

3UREOqPH FRPSOpPHQWDLUH 4.1 4.2 Prsentation de lapplication------------------------------------------------- 6 Travail raliser --------------------------------------------------------------- 6

Merci de communiquer toute correction ou remarque sur ce document : Philippe.Picouet@enst-bretagne.fr ou Philippe.Tanguy@enst-bretagne.fr

,$6&  (QVW %UHWDJQH

 2EMHFWLIV HW RUJDQLVDWLRQ GX 73
Cette sance est consacre lutilisation dun pilote JDBC pour laccs une base Oracle au sein de programmes crits en Java. Ceux-ci sont trs simples et ne possdent pas dinterface graphique, laffichage sera ralis au sein dune invite de commandes MS-DOS . Les diffrents aspects abords dans ce TP concernent : - la connexion/dconnexion une base de donnes ; - lutilisation des diffrents types de 6WDWHPHQWV chargs dexcuter des requtes sur la base ; - le fonctionnement dun 5HVXOW6HW pour la rcupration et lanalyse des rsultats ; - la construction dune requte dynamique qui nest pas connue avant lexcution (avant la compilation) ; - la gestion des transactions ; - les possibilits dutilisation de plusieurs bases de donnes (2) ; - linterrogation du schma de la base de donnes. Le principe gnral du fonctionnement de chacun des programmes dvelopper est le suivant : 1 lancement du programme 2 connexion la base (dbut de la transaction) 3 action(s) sur la base (requtes, mises jour, insertions) 4 dconnexion de la base (fin de la transaction) 5 arrt du programme

 3UpVHQWDWLRQ GHV DSSOLFDWLRQV


Ce TP est organis en deux parties (sections 3 et 4) : La premire est constitue dun ensemble de programmes exemples qui montrent les fonctionnalits principales des pilotes JDBC. La seconde consiste en un problme rsoudre : lattribution dune commission chacun des employs prsent dans la table EMP.

 ,QVWDOODWLRQ HW FRQILJXUDWLRQV
 3UpUHTXLV
SDK (-DYD 'HYHORSPHQW .LW) est un ensemble doutils permettant, entre autres, la compilation (commande MDYDF) et lexcution des programme Java (commande MDYD). Vrifiez quune version suffisamment rcente de java (1.3 minimum) est installe sur votre machine Vrifiez que la variable 3$7+ comprend le rpertoire bin de linstallation java
2

,$6&  (QVW %UHWDJQH

 ,QVWDOODWLRQV SURSUHV DX 73


Lensemble des fichiers ncessaires la ralisation de ces exercices peut tre tlcharg depuis http://perso/~picouet/french/sgbd/jdbc/Tp_jdbc.zip Le rpertoire ainsi cr contient un driver jdbc pour Oracle, ainsi que les sources et les corrigs des exercices des parties 3 et 4
 GULYHU -'%&

Un driver JDBC est constitu dun ensemble de classes Java runies dans un archive ZIP. Lors de lexcution dun programme qui se connecte une base de donnes, laccs par celuici des classes du driver JDBC doit tre possible. Pour cela, une variable denvironnement nomme &/$663$7+ peut tre positionne une fois pour toute dans le systme pour en indiquer le chemin daccs. Un fichier classes12.zip est dj stock dans larchive prsente ci-dessus Vrifiez que la variable denvironnement &/$663$7+ est bien positionne ou crez la : &/$663$7+  &/$663$7+ ' ?73B-'%&?FODVVHV]LS

 3URJUDPPHV H[HPSOHV
Avant de commencer les exercices, il est ncessaire de modifier les paramtres de connexion la base dans chacun des embryons de classes fournies. Ceux-ci sont contenus dans lattribut FRQQHFW6WULQJ : il faut y modifier les valeurs 86(51$0(, 3$66:25', 0$&+,1(, 180B3257 et %$6( dans la chane de caractres.

 8WLOLVDWLRQ GXQ 6WDWHPHQW VLPSOH


Lexercice raliser vise se connecter la base de donnes, effectuer une requte affichant une partie du contenu de la table stockant les employs (VHOHFW HQDPHMRE IURP (03), afficher le rsultat sur la sortie standard puis fermer la connexion la base. Lenvoi de la requte sera ralis grce un 6WDWHPHQW simple qui rcuprera le 5HVXOW6HW contenant le rsultat. La manipulation de ce 5HVXOW6HW permettra den extraire les valeurs des colonnes et de les afficher. Les deux manires de rcuprer les valeurs (positionnement et nom de la colonne) seront testes. Travail raliser Pour raliser le travail, un embryon de la classe est fourni : 73MDYD Le fonctionnement de ce programme est visible dans le constructeur de la classe grce lappel successif de trois mthodes quil vous faudra complter : 1 - Appel de la mthode FRQQH[LRQ .

,$6&  (QVW %UHWDJQH

23-

Appel de la mthode H[HFXWLRQ6WDWHPHQW6LPSOH qui se charge de lenvoi la base de donnes de la requte et ralise laffichage du rsultat. Appel de la mthode GH&RQQH[LRQ puis fin du programme.

 8WLOLVDWLRQ GXQ 3UHSDUHG6WDWHPHQW


Lexercice vise afficher la liste des personnes suivant leur dpartement. Pour cela, deux tapes sont ncessaires. La premire rcuprera la liste des ID des dpartements laide dun 6WDWHPHQW simple et la seconde rcuprera la liste des personnes suivant ces ID. Cette seconde tape est une succession denvoi de plusieurs requtes quasiment identiques lexception prs du numro du dpartement. Cest pourquoi, dans un souci doptimisation, lemploi dun 3UHSDUHG6WDWHPHQW est indiqu dans ce cas. Travail raliser Lembryon de la classe est fourni : 73MDYD. Fonctionnement : 1 - Appel de la mthode FRQQH[LRQ . 2 - Appel de la mthode H[HFXWLRQ3UHSDUHG6WDWHPHQW qui se charge de lenvoi la base de donnes des deux requtes ncessaires et ralise laffichage du rsultat. 3 - Appel de la mthode GH&RQQH[LRQ puis fin du programme.

 8WLOLVDWLRQ GXQ &DOODEOH6WDWHPHQW


Le principe de cet exercice est de raliser une insertion dun nouvel employ dans la base en appelant partir du code Java une procdure stocke. Travail raliser La premire tape consiste insrer dans la base la procdure stocke. Celle-ci est prsente dans le fichier LQVHUW(03VTO et son installation se droule de la manire suivante : 1 - Ouverture dune fentre invite de commande MS-DOS ; 2 - Lancement de la commande : VTOSOXV IFEG;;IFEG#(16(,* 3 - Dans linterprteur SQL, lancement de la commande : #LQVHUW(03. Si tout se passe bien, le message suivant apparat : 3URFpGXUH FUpp. Lembryon de la classe est fourni : 73MDYD. Fonctionnement : 1 - Appel de la mthode FRQQH[LRQ . 2 - Appel de la mthode H[HFXWLRQ&DOODEOH6WDWHPHQW qui se charge de lenvoi la base de donnes des paramtres ncessaires lexcution sur la base de la procdure puis ralise laffichage de la table pour visualiser le rsultat de linsertion. 3 - Appel de la mthode GH&RQQH[LRQ puis fin du programme.

 5HTXrWH G\QDPLTXH


Cet exercice vise crer une mthode qui visualisera le contenu dune table inconnue avant lexcution du programme. Le nombre de colonnes renvoyes dans le 5HVXOW6HW tant inconnu, il faudra alors interroger les mtadonnes associes pour grer correctement laffichage.
,$6&  (QVW %UHWDJQH

Travail raliser Lembryon de la classe est fourni : 73MDYD. Fonctionnement : 1 - Appel de la mthode FRQQH[LRQ . 2 - Appel de la mthode YLVXDOLVDWLRQ&RQWHQX7DEOH QRP'H/D7DEOH qui se charge de lenvoi la base de donnes des paramtres ncessaires lexcution sur la base de la procdure puis ralise laffichage de la table pour visualiser le rsultat de linsertion. 3 - Appel de la mthode GH&RQQH[LRQ puis fin du programme.

 *HVWLRQ GHV WUDQVDFWLRQV


Jusqu prsent, chacune des transactions sur la base tait automatiquement valide (FRPPLW). Le but de cet exercice vise grer les transactions au sein mme du programme Java (UROOEDFN suite une erreur de saisie par exemple). Ceci est rendu possible grce la mthode VHW$XWR&RPPLW WUXH RX IDOVH qui sapplique un instance de &RQQHFWLRQ. Le principe de lexercice est de cascader un ensemble de transactions lmentaires que lon dsire considrer comme une transaction unique que lon ne validera que si et seulement si lensemble des transactions sest correctement droul (cest dire quaucune erreur dans le traitement na t rencontr). Dans le cas contraire, tout doit tre annul.
9pi hhpv Av hhpv

Uhhpvpyprhvr vrvqrh qphrr

Uhhpvpyprhvr!

vrvqryryp hhrhhqphrr ryyrrvpp

Travail raliser Lembryon de la classe est fourni : 73MDYD. Fonctionnement : 1 - Appel de la mthode FRQQH[LRQ . 2 - Appel de la mthode H[HFXWLRQ,QVHUWLRQ1RXYHDX'HSDUWHPHQW : insertion dun nouveau dpartement nomm )& localis 5(11(6 de n . laide dun 6WDWHPHQW simple comme en 3.1 3 - Appel de la mthode H[HFXWLRQ,QVHUWLRQ1RXYHOOH3HUVRQQH : cette personne appartient au dpartement nouvellement cre. Pour linsertion, on utilisera la procdure stocke utilise en 3.3 grce un &DOODEOH6WDWHPHQW. 4 - Appel de la mthode GH&RQQH[LRQ puis fin du programme. Dans un premier temps, on ralise deux insertions correctes qui doivent tre valides. Dans un second temps, on simule une erreur dans linsertion de la personne et le programme doit annuler les GHX[ insertions. On peut visualiser (64/ ou &DVW 64/ %XLOGHU) lannulation ou la validation de la transaction globale.

,$6&  (QVW %UHWDJQH

 ,QWHUURJDWLRQ GX VFKpPD


Cet exercice vise interroger le dictionnaire de donnes. Lexercice 3.2.4 interrogeait les mtadonnes associes un 5HVXOW6HW (la classe 5HVXOW6HW0HWD'DWD), cet exercice interrogera les donnes concernant la base en elle-mme grce la classe 'DWDEDVH0HWD'DWD. Travail raliser Lembryon de la classe est fourni : 73MDYD. Fonctionnement : 1 - Appel de la mthode FRQQH[LRQ . 2 - Appel de la mthode H[SORUH0HWD'DWD qui rcuprera les renseignements : - liste de toutes les tables du schma - liste des colonnes de la table EMP - liste des cls primaires de la table EMP - liste des cls trangres de la table EMP 3 - Appel de la mthode GH&RQQH[LRQ puis fin du programme.

 3UREOqPH FRPSOpPHQWDLUH
 3UpVHQWDWLRQ GH ODSSOLFDWLRQ
Lapplication raliser calcule et met jour la valeur de la commission attribue chacun des employs de la table EMP. La valeur individuelle de la commission est proportionnelle au salaire de lemploy. Par exemple, un employ dont le salaire reprsente 15% de la masse salariale totale se verra attribu 15% du montant total de la commission. La valeur de la commission totale est renseigne lors du lancement du programme : MDYD &RPPLVVLRQ . Le programme effectue le traitement et la mise jour puis affiche en fin de processus le contenu de la table EMP pour contrle.

 7UDYDLO j UpDOLVHU


Lembryon de la classe est fourni : &RPPLVVLRQMDYD. Dans celui-ci, seul le traitement concernant la rcupration, le calcul de la commission puis la mise jour sur la BD est raliser dans la mthode DIIHFWDWLRQ&RPPLVVLRQ. Le fonctionnement propos est le suivant : - Rcupration de la somme des salaires - Pour chaque employ : Rcupration du n d'employ et de son salaire Calcul du montant individuel de la commission Mise jour dans la table du nouveau montant de commission - Affichage du contenu de la table pour vrification

,$6&  (QVW %UHWDJQH

Vous aimerez peut-être aussi