Vous êtes sur la page 1sur 4

GI2 JAVA AVANCE Enseignante : Mme Houda ANOUN

TP 5 : JDBC

Consigne :
Sur Intellij Idea, créer un nouveau projet TPJdbc. Ajouter ensuite le pilote mysql-connector-j-8.3.0.jar
comme librairie externe comme suit : File ->Project Structure->Modules->Dependencies (appuyer par
la suite sur le bouton + et exporter le fichier jar).

Exercice 1 : Premier exemple

En utilisant MySql Workbench, créer un nouveau schéma Jdbc. L’objectif de cet exercice est de se
familiariser avec l’api JDBC en écrivant un programme Java qui permettra d’accomplir les tâches
suivantes :

 Créer une table étudiants dont la structure est comme suit

 Réaliser différentes insertions dans cette table


 Exécuter une requête de sélection, et afficher le jeu de résultats obtenu

1- Compléter le programme Java suivant pour permettre la création de la table ETUDIANTS dans
le schéma Jdbc :

import java.sql.*;

public class CreationTableMySql {


public static void main(String [] args) {
Connection con = null;
try {
String url = "jdbc:mysql://localhost:3306/jdbc";
con = DriverManager.getConnection(url,"root","motPassRoot");
//remplacer motPassRoot par le mot de passe de l’administrateur
Statement sta = con.createStatement();
String SQLCreateTable = … // a compléter
int count = sta.executeUpdate(SQLCreateTable);
System.out.println("Creation de la table reussie");
sta.close();
con.close();}
catch (Exception e) {
System.err.println("Exception: "+e.getMessage());}

}}
GI2 JAVA AVANCE Enseignante : Mme Houda ANOUN

2- Modifier votre programme Java pour permettre l’insertion de 5 étudiants


3- Etendre le programme pour afficher les informations des étudiants qui disposent d’une boite
mail sur gmail

Exercice 2 :

Il s'agit d'écrire une application Java permettant de suivre la consommation de café des programmeurs
d'un projet. Chaque semaine, le chef de projet relève le nombre de tasses de café consommées par les
différents programmeurs. Ces informations sont stockées dans un SGBD dans deux tables :

 PROGRAMMEURS qui stocke les informations d'identification de chaque programmeur du


projet
 CONSOS_CAFE qui stocke les consommations de café semaine par semaine des différents
programmeurs.

La structure de ces tables est la suivante :

1. Soit le programme suivant :

import java.sql.*;
public class Enigme {
public static void main(String [] args) {
Connection con = null;
try {

String url ="jdbc:mysql://localhost:3306/jdbc";


con = DriverManager.getConnection(url,"root","motPassRoot");
Statement sta = con.createStatement();
GI2 JAVA AVANCE Enseignante : Mme Houda ANOUN

String SQLQuery = "SELECT


PROGRAMMEUR,PRENOM,NOM,NB_TASSES,NO_SEMAINE FROM CONSOS_CAFE c
JOIN PROGRAMMEURS p ON p.ID=c.PROGRAMMEUR WHERE
c.NB_TASSES=(SELECT MAX(NB_TASSES) FROM CONSOS_CAFE)"

ResultSet res = sta.executeQuery(SQLQuery);


while (res.next()) {
System.out.println(
"Le programmeur "+res.getInt("PROGRAMMEUR")
+ ": "+res.getString("PRENOM")
+ " "+res.getString("NOM")
+ ", a consomme "+res.getInt("NB_TASSES")
+ "tasses, pendant la semaine"
+res.getInt("NO_SEMAINE") ; }

res.close();
sta.close();
con.close();
} catch (Exception e) {
System.err.println("Exception: "+e.getMessage());
} }}

Analyser le code de la classe Enigme et prédire l’affichage obtenu à l’écran. Déterminer le


rôle de ce programme.

2. Ecrire un programme Java qui permet de saisir un identifiant de programmeur et affiche le


nombre total de tasses de café consommées par ce dernier

3. L'application doit permettre à l'utilisateur de saisir et d'enregistrer dans la base de données


les consommations des programmeurs pour une semaine donnée. Ecrire un programme qui
permet de saisir un numéro de semaine et ensuite pour chaque programmeur de rentrer le
nombre de tasses qu'il a consommées durant cette semaine.

Exercice 3 : Gestion des employés

On considère une base de données relationnelle composée des deux tables DEPT et EMP dont le script
de création est présenté ci-dessous :

CREATE TABLE DEPT


( IDDEPT INT ,
NOMD VARCHAR(12) NOT NULL,
LIEU VARCHAR(10),
CONSTRAINT DEPT_PK PRIMARY KEY(IDDEPT),
CONSTRAINT NOMD_U UNIQUE(NOMD)
)

CREATE TABLE EMP


( MATR INT,
NOM VARCHAR(10) NOT NULL,
POSTE VARCHAR(10),
SUP INT,
DATEMB DATE,
SAL NUMERIC,
GI2 JAVA AVANCE Enseignante : Mme Houda ANOUN

COMM NUMERIC,
DEPT INT,
CONSTRAINT EMP_PK PRIMARY KEY(MATR),
CONSTRAINT DEPT_REF_EMP FOREIGN KEY(DEPT) REFERENCES DEPT(IDDEPT),
CONSTRAINT EMP_REF_SUP FOREIGN KEY (SUP) REFERENCES EMP(MATR)

1- Utiliser une requête paramétrée pour afficher les noms, salaires et commissions des employés
d’un département d (la valeur de d est lue au clavier), en utilisant 1 paramètre pour le numéro
de département.
2- Ecrire un programme Java qui augmente de 10 % le salaire des employés qui ont les 3 plus
petits salaires. Généralisation : l’augmentation concerne les employés ayant les k plus petits
salaires et le taux d’augmentation est t (k et t sont lus au clavier)
3- Afficher les noms, les numéros de département, les salaires et les commissions des employés
du département dont le total des salaires est le plus grand.
4- Ecrire un programme qui récupère en entrées deux tableaux contenant respectivement les
numéros de départements et les pourcentages d'augmentation, et augmente tous les
employés de ces départements du pourcentage indiqué.
Pour simplifier vous supposerez que les pourcentages d'augmentation sont des nombres
entiers.
Pour pouvoir vérifier, vous ferez afficher les salaires des départements concernés avant et
après les augmentations.

Vous aimerez peut-être aussi