Vous êtes sur la page 1sur 2

TP1 M1- Cours Middleware

TP 1 : Architecture 2-tier avec JDBC

Objectifs
• Implémentation d’une architecture 2-tier simple
• Découverte de JDBC
• Développement d’une application Java pour accéder à une base de données

Compte rendu du TP
Répondre aux questions suivantes après avoir réalisé le TP :
• Expliquez l’intérêt de l’utilisation de JDBC pour le développement d’applications.
• Un middleware peut-être vu comme une abstraction de programmation ou comme une
infrastructure de médiation. Illustrer ces deux notions dans le cas de JDBC.
• Discuter des inconvénients d’une architecture 2-tier en vous appuyant sur des exemples
concrets du TP.
• Comparer les deux possibilités de connexion à une BD : (1) via le DriverManager et (ii) via
les Datasources.
• Joindre au compte rendu de TP les sources Java de vos programmes.

Les comptes rendus des TP1 et TP2 sont à rendre par voie électronique à olivier.coupelon@univ-
bpclermont.fr au plus tard le 3/11/2008.

Documentation

• JDBC: http://java.sun.com/javase/6/docs/technotes/guides/jdbc/

Présentation de l’environnement

• Plateforme Java™
• Pilote JDBC pour Oracle : ojdbc6.jar
(http://download.oracle.com/otn/utilities_drivers/jdbc/111060/lib/ojdbc6.jar)

• SGBD Oracle 10g


o Descripteur réseau
 Hôte : sciapp2
 Protocole : tcp
 Port : 1521
 Service base de données : ORCL

o Accès via isqlplus : http://sciapp2:5560/isqlplus
o Login : M1_votreNom
o Scripts fournis
 Création de la base de données : creation.sql
 Procédure stockée augmentation : procAugmentation.sql
Préparation de la base de données Oracle

• Connectez-vous à Oracle et exécuter le script creationBD.sql qui permet la création de la base


de données suivante :
 TABLE DEPT_TP1 (DEPTNO NUMBER(2) CONSTRAINT PK_DEPT
PRIMARY KEY, DNAME VARCHAR2(14) , LOC VARCHAR2(13) ) ;
 TABLE EMP_TP1 (EMPNO NUMBER(4) CONSTRAINT PK_EMP
PRIMARY KEY, ENAME VARCHAR2(10), JOB VARCHAR2(9), MGR
NUMBER(4), HIREDATE DATE, SAL NUMBER(7,2), COMM
TP1 M1- Cours Middleware
NUMBER(7,2), DEPTNO NUMBER(2) CONSTRAINT FK_DEPTNO
REFERENCES DEPT);
 TABLE SALGRADE_TP1 (GRADE NUMBER, LOSAL NUMBER,
HISAL NUMBER );
 TABLE BONUS_TP1 ( ENAME VARCHAR2(10), JOB VARCHAR2(9),
SAL NUMBER, COMM NUMBER) ;

Les trois premières tables sont remplies avec des tuples exemples.

o Exécuter le script procAugmentation.sql pour créer la procédure augmentation


suivante :

CREATE OR REPLACE PROCEDURE augmentation (emp_id INTEGER,


amount REAL) IS
BEGIN
UPDATE employee SET sal = sal + amount WHERE empno = emp_id;
END raise_salary;
END test;
/
• Créer une librairie TP1-lib contenant le Pilote JDBC pour Oracle

Partie 1 : Accès à une base de données Oracle

1. Créer un projet Projet-TP1 et ajouter le pilote JDBC d’oracle dans le classpath du projet.
2. Créer un package TP1_Package et y insérer une nouvelle classe TP1-test.java.
3. Copier le squelette squelette-Pgm1.java dans votre classe pgm1-TP1.java et compléter le
programme pour afficher la liste des noms des départements de votre base de données.
4. Modifier le programme précédent de manière à afficher les couples suivants :
(nom de l’employé :--- > nom du département auquel l’employé est affecté)
5. Ajouter à votre package une nouvelle classe pgm2-TP1.java ayant une méthode
affectation(num-emp, num-dep) qui permet de réaffecter l’employé numéro num-emp au
département numéro num-dep.
6. Ajouter au programme précédent la méthode ajout-bonus(job, mt) qui permet d’insérer dans
la table Bonus_TP1, un bonus d’un montant mt pour tous les employés exerçant le métier job.
Utiliser pour cela une requête paramétrée.
7. Ajouter à votre programme pgm2-TP1.java une méthode raise-salary(numemp, aug) qui
permet d’augmenter le salaire de l’employé numemp d’un montant aug. Vous devez utiliser
pour cela la procédure stockée augmentation.
8. Ajouter une méthode raise-salary(numdep, aug) qui permet d’augmenter le salaire de tous les
employés du département numdep d’un montant aug. Vous devez utiliser pour cela la
procédure stockée augmentation.
9. Ajouter une méthode descEmp qui permet d’afficher la liste des attributs de la table
EMP_TP1 ainsi que le type de données de chaque attribut.

Partie 2 : Utilisation des pools de connexions

1. Ajouter à votre package une nouvelle classe pgm3-TP1.java qui permet d’afficher les
couples (nom de l’employé :--- > nom du département auquel l’employé est affecté). Utiliser
cette fois un Datasource pour vous connecter à la base de données.
2. Connectez-vous au serveur d’applications Glassfish et créez un pool de connexion pour vous
connecter au serveur Oracle.
3. Créer une ressource JDBC (Datasource) associée au pool de connexion Oracle.
4. Au niveau de votre poste Client, créez une nouvelle classe pgm4-TP1.java qui permet
d’afficher les couples (nom de l’employé :--- > nom du département auquel l’employé est
affecté) et qui utilise cette le Datasource disponible au niveau du serveur d’applications.