Vous êtes sur la page 1sur 9

Matière : JEE

----------------------------------------------
Auditoire : GLSI-2

TP1

Mise en place et initialisation à l’architecture client-serveur 2 tiers

Objectifs :

- Installation de l’environnement de développement intégré Eclipse JEE


- Mise en place de l’architecture client-serveur 2 tiers via une application cliente java
dynamique qui exploite le connecteur JDBC pour la communication avec le SGBD MySQL
- Exploitation du connecteur JDBC en tant que service de la plateforme JEE pour la lecture et
l’écriture des données dans une base MySQL

Outils nécessaires :
 Eclipse IDE for Enterprise Java and Web Developers
Lien de téléchargement : https://www.eclipse.org/downloads/packages/release/2022-12/r/eclipse-ide-enterprise-java-and-
web-developers

 Le système de gestion de bases de données MySQL


Lien de téléchargement : https://dev.mysql.com/downloads/mysql/

 Activité 1 : Mise en place de l’environnement de développement

Nous devons commencer par télécharger et installer les outils logiciels indiqués ci-dessus
1. L’installation de Eclipse consiste à décompresser le dossier téléchargé. Pour lancer Eclipse, il faut
accéder au dossier eclipse (sous dossier du dossier décompressé), lancer eclipse.exe, indiquer le
répertoire qui fera office de votre workspace (de dossier contenant toutes les sources de tous vos
projets) et finalement cliquer sur le bouton Launch.

p. 1
TP1 – JEE

2. Pour l’installation de MySQL, démarrez l’assistant d’installation et acceptez toutes les


configurations par défaut; n’oubliez pas d’indiquer et de mémoriser le mot de passe pour
l’utilisateur «root». Notez que le port d’accès par défaut à votre SGBD MySQL est 3306.
Pour tester que le serveur MySQL est bien installé, lancer MySQL 8.0 Command Line Client à
partir de votre menu de démarrage comme indiqué ci-dessous.

 Activité 2 : Création et utilisation d’une base de données

p. 2
TP1 – JEE

Dans cette étape nous allons utiliser la base de donnée relative à l’MCD suivant:

1. Démarrer MySQL 8.0 Command Line Client à partir de votre menu de démarrage. Dans l’invite de
commande qui s’affiche, il faut saisir le mot de passe de l’utilisateur root (le mot de passe introduit lors
de l’installation). Si la connexion au serveur MySQL est correctement établie, l’invite de commande
mysql> sera affichée comme dans la figure suivante.

2. Créer une nouvelle base de données nommée mabase qui va contenir toutes les données de notre
application :

mysql> create database mabase ;

3. La création d'une base de données ne la sélectionne pas pour l'utilisation; vous devez le faire
explicitement. Pour rendre mabase la base courante, utilisez cette commande :

mysql> use mabase ;

p. 3
TP1 – JEE

4. Ensuite copiez et collez le script de création des tables de la base fourni avec le présent TP au niveau
du fichier mabase.sql

5. Enfin, nous proposons de charger la base avec des données de test. Un script de génération de
données de test est fourni avec le présent TP au niveau du fichier mabasedata.sql

Et voilà, la base de données est prête à être utilisée.

 Activité 3 : Initialisation de l’application cliente java de test

1. Commencez par démarrer Eclipse et créez un nouveau projet java nommé tp1jee comme indiqué
dans les interfaces suivantes:

p. 4
TP1 – JEE

2. Ajouter au projet créé une nouvelle classe java nommée TestMain contenant une méthode main() (il
faut la cocher).

p. 5
TP1 – JEE

 Activité 4 : Exploiter le connecteur JDBC pour la connexion à la base

Pour se connecter à la base de données, nous allons utiliser une interface de programmation appelée
JDBC (Java DataBase Connectivity). L’API JDBC constitue un ensemble de classes permettant de
développer des applications java capables de se connecter à des serveurs de bases de données. Elle a été
développée de telle façon à permettre à un programme de se connecter à n'importe quelle base de
données en utilisant la même syntaxe.

1. Configuration de l’application java : Dans le cas d’une application deux tiers (un client et un serveur de
bases de données), il faut ajouter le connecteur JDBC aux ressources de l’application java comme suit:
faîtes un clic droit sur le nom du projet, Build Path --> Add External Archives.

Dans l’interface qui s’ouvre sélectionner le connecteur mysql-connector-java-8.0.23.jar (fournie avec les
ressources du TP)

2. Dans la classe TestMain, créez la méthode ConnexionBase() (code à utiliser ci-dessous) qui permet
de créer une connexion à la base de données mabase. Cette méthode renvoie un objet de type
Connection si la connexion a été correctement établie et null sinon.

static Connection ConnexionBase()


{
// connexion à la base de donnée
Connection con = null;

// configure les parameters d’accès à MySQL


String username = "root";
String password = "root";

p. 6
TP1 – JEE

// URL de connexion à MySQL server


// Syntax: jdbc:TYPE:machine:port/DB_NAME
// String url = "jdbc:mysql://localhost:3306/mabase";

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

// Etablir la connexion à la base à l’URL donnée et avec


// les paramètres de connexion username and password
try
{
Class.forName("com.mysql.cj.jdbc.Driver");
con = DriverManager.getConnection(url, username, password);
System.out.println ("La connection avec la base de donnée est établie.");
} catch (Exception e)
// (ClassNotFoundException and SQLException)

{
System.out.print("Désolé ! la connection à la base de donnée n'est pas établie");
}
return con;
}

Maintenant, vous pouvez exécuter la classe TestMain.java (en modifiant la méthode main) pour
pouvoir tester la méthode ConnexionBase(). Pour l'exécution, faîtes un clic droit sur la classe
TestMain.java --> Run As --> Java Application.

Il faut s’assurer que vous êtes correctement connecté à votre base de données mabase.

3. Dans la classe TestMain, ajoutez la méthode getClientByID(int idClient) qui permet de rechercher
dans la base un client avec son identifiant (champ NumCli). Cette méthode retourne true si le client
existe dans la base et false sinon. Elle permet d’afficher dans la console les informations du client.

static boolean getClientByID(int idClient){

//Déterminer si un client existe dans la base ou non


boolean registred = false ;
// Initialisation de la connexion
Connection con = ConnexionBase() ;
// créer un objet "Statement" qui enverra des requêtes SQL à la
// base de données
Statement stmt;
try {
stmt = con.createStatement();
// Initialiser votre requête de sélection
String selectQuery = "Select * from client where NumCli= "+idClient+" ;";
// execution de la requête et retour du resultat
ResultSet results = null;
results = stmt.executeQuery(selectQuery);
if (results.next())
{
System.out.println("Client trouvé: " + results.getString("NomCli")+" Ville : "+
results.getString("Ville"));
registred = true;

p. 7
TP1 – JEE

}
else
{
System.out.println("Client non trouvé" );
}
stmt.close();
// Fermeture de la connexion
con.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return registred ;
}

Testez la méthode à partir du main.

4. Dans la classe TestMain, ajoutez les méthodes nécessaires permettant de :

- rechercher et afficher un produit dans le stock en fonction de son identifiant

- rechercher et afficher tous les produits dont le prix est supérieur à 10D

- rechercher une commande en fonction de son identifiant. Si elle existe, afficher ses détails.

Testez ces méthodes.

5. Pour ajouter un client à la base utilisez la méthode addClient suivante .

static void addClient (int idClient, String nomCli, String ville, String categorie, int compte){

// Initialisation de la connexion
Connection con = ConnexionBase() ;
// créer un objet "Statement" qui enverra des requêtes SQL à la
// base de données
Statement stmt;
try {
if (!getClientByID(idClient))
{
stmt = con.createStatement();
// Initialiser votre requête d’insertion ou de mise à jour
String insertString = "insert into client values ("+ idClient +",'"+ nomCli
+"','"+ville+"','"+categorie+"',"+compte+")";

// Execution de la requête
int status = stmt.executeUpdate(insertString);
if(status==0)
System.out.println("Le client n'a pas été ajouté");
else
System.out.println("Le client a été ajouté avec succes");
stmt.close();
// Fermeture de la connexion
con.close();
}
else
{

p. 8
TP1 – JEE

System.out.println("Un client ayant l'id "+idClient+" existe déjà dans la base");


}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
Testez la méthode.

6. Ajoutez et testez les méthodes nécessaires permettant de :

- Ajouter un produit à la base

- Ajouter une commande à la base

p. 9

Vous aimerez peut-être aussi