Voici une structure complète et étape par étape pour un Travail Pratique (TP) sur la
création d'une application CRUD avec Java Swing, NetBeans et MySQL.
Ce guide est conçu pour être directement applicable et facile à suivre.
Objectif du TP
Créer une application de bureau Java permettant de gérer une liste d'étudiants
(Ajouter, Modifier, Supprimer, Afficher) connectée à une base de données MySQL.
Étape 1 : Préparation de la base de données (MySQL)
Commencez par créer la base de données et la table nécessaires via phpMyAdmin
ou votre console MySQL.
SQL
CREATE DATABASE gestion_ecole;
USE gestion_ecole;
CREATE TABLE etudiant (
id INT AUTO_INCREMENT PRIMARY KEY,
matricule VARCHAR(20) UNIQUE NOT NULL,
nom VARCHAR(50) NOT NULL,
prenom VARCHAR(50) NOT NULL,
filiere VARCHAR(50) NOT NULL
);
Étape 2 : Configuration du projet sous NetBeans
1. Ouvrez NetBeans et allez dans File > New Project > Java with Ant > Java
Application.
2. Nommez le projet GestionEtudiants et décochez "Create Main Class" (nous
utiliserons une JFrame comme point d'entrée).
3. Ajout du pilote MySQL (JDBC) :
Dans la fenêtre Projects à gauche, faites un clic droit sur le dossier Libraries.
Sélectionnez Add Library...
Cherchez et ajoutez MySQL JDBC Driver (ou ajoutez le .jar du connecteur MySQL
si vous l'avez téléchargé manuellement).
Étape 3 : Création de la classe de connexion
Créez un package [Link] et ajoutez-y une classe Java nommée
[Link]. Cette classe gérera la connexion à MySQL.
Java
package [Link];
import [Link];
import [Link];
import [Link];
public class ConnectBD {
private static final String URL =
"jdbc:mysql://localhost:3306/gestion_ecole";
private static final String USER = "root"; // À adapter selon votre
config
private static final String PASSWORD = ""; // À adapter selon votre
config
public static Connection obtenirConnexion() {
Connection con = null;
try {
[Link]("[Link]");
con = [Link](URL, USER, PASSWORD);
} catch (ClassNotFoundException | SQLException e) {
[Link]("Erreur de connexion : " + [Link]());
}
return con;
}
}
Étape 4 : Conception de l'interface (JFrame)
1. Créez un nouveau package [Link].
2. Faites un clic droit sur ce package > New > JFrame Form. Nommez-le
EtudiantForm.
3. Utilisez la palette de NetBeans (Drag & Drop) pour créer l'interface avec les
composants suivants et renommez leurs "Variable Name" :
Champs de texte (JTextField) : txtMatricule, txtNom, txtPrenom, txtFiliere.
Boutons (JButton) : btnAjouter, btnModifier, btnSupprimer, btnActualiser.
Tableau (JTable) : tableEtudiants (placez-le dans un JScrollPane).
Étape 5 : Implémentation du code CRUD dans la JFrame
Allez dans la section Source de votre [Link] et ajoutez le code suivant.
1. Importations et méthode d'affichage (Read)
Ajoutez ces imports au début du fichier et créez la méthode pour charger les
données dans la JTable.
Java
import [Link];
import [Link].*;
import [Link];
import [Link];
// Dans la classe EtudiantForm :
public void afficherEtudiants() {
try {
Connection con = [Link]();
String sql = "SELECT * FROM etudiant";
PreparedStatement pst = [Link](sql);
ResultSet rs = [Link]();
DefaultTableModel model = (DefaultTableModel)
[Link]();
[Link](0); // Vider le tableau avant de le remplir
while ([Link]()) {
[Link](new Object[]{
[Link]("id"),
[Link]("matricule"),
[Link]("nom"),
[Link]("prenom"),
[Link]("filiere")
});
}
[Link]();
} catch (Exception e) {
[Link](null, "Erreur d'affichage : " +
[Link]());
}
}
Appelez afficherEtudiants(); dans le constructeur de EtudiantForm juste après
initComponents(); pour charger les données au démarrage.
2. Action du bouton Ajouter (Create)
Faites un double-clic sur le bouton Ajouter en mode Design pour générer
l'événement, puis insérez :
Java
try {
Connection con = [Link]();
String sql = "INSERT INTO etudiant (matricule, nom, prenom, filiere)
VALUES (?, ?, ?, ?)";
PreparedStatement pst = [Link](sql);
[Link](1, [Link]());
[Link](2, [Link]());
[Link](3, [Link]());
[Link](4, [Link]());
[Link]();
[Link](null, "Étudiant ajouté avec succès !");
[Link]();
afficherEtudiants(); // Mettre à jour le tableau
} catch (Exception e) {
[Link](null, "Erreur lors de l'ajout : " +
[Link]());
}
3. Récupérer les données au clic sur le tableau
Pour pouvoir modifier ou supprimer, il faut remplir les champs lorsqu'on clique sur
une ligne. Faites un clic droit sur la tableEtudiants > Events > Mouse >
mouseClicked :
Java
int ligne = [Link]();
DefaultTableModel model = (DefaultTableModel) [Link]();
[Link]([Link](ligne, 1).toString());
[Link]([Link](ligne, 2).toString());
[Link]([Link](ligne, 3).toString());
[Link]([Link](ligne, 4).toString());
// Vous pouvez stocker l'ID dans une variable globale pour la
modification/suppression
4. Action du bouton Modifier (Update)
Double-clic sur le bouton Modifier :
Java
try {
int ligne = [Link]();
if (ligne == -1) {
[Link](null, "Veuillez sélectionner un
étudiant à modifier.");
return;
}
String id = [Link]().getValueAt(ligne, 0).toString();
Connection con = [Link]();
String sql = "UPDATE etudiant SET matricule=?, nom=?, prenom=?,
filiere=? WHERE id=?";
PreparedStatement pst = [Link](sql);
[Link](1, [Link]());
[Link](2, [Link]());
[Link](3, [Link]());
[Link](4, [Link]());
[Link](5, id);
[Link]();
[Link](null, "Étudiant modifié avec succès !");
[Link]();
afficherEtudiants();
} catch (Exception e) {
[Link](null, "Erreur lors de la modification : "
+ [Link]());
}
5. Action du bouton Supprimer (Delete)
Double-clic sur le bouton Supprimer :
Java
try {
int ligne = [Link]();
if (ligne == -1) {
[Link](null, "Veuillez sélectionner un
étudiant à supprimer.");
return;
}
String id = [Link]().getValueAt(ligne, 0).toString();
int confirmation = [Link](null, "Voulez-vous
vraiment supprimer cet étudiant ?", "Confirmation",
JOptionPane.YES_NO_OPTION);
if (confirmation == JOptionPane.YES_OPTION) {
Connection con = [Link]();
String sql = "DELETE FROM etudiant WHERE id=?";
PreparedStatement pst = [Link](sql);
[Link](1, id);
[Link]();
[Link](null, "Étudiant supprimé !");
[Link]();
afficherEtudiants();
// Vider les champs
[Link](""); [Link]("");
[Link](""); [Link]("");
}
} catch (Exception e) {
[Link](null, "Erreur de suppression : " +
[Link]());
}