Application JavaFX de gestion d'étudiants avec base de données MySQL/MariaDB via JDBC.
projet_javafx_gestion_etudiants/
├── pom.xml ← Configuration Maven
├── sql/
│ └── gestion_etudiants.sql ← Script de création BDD + données test
└── src/
├── Main.java ← Point d'entrée (Application JavaFX)
├── SetupDatabase.java ← Utilitaire d'initialisation BDD (optionnel)
├── model/
│ └── Etudiant.java ← Classe métier (POJO)
├── dao/
│ └── EtudiantDAO.java ← Accès base de données (CRUD)
├── database/
│ └── DatabaseConnection.java ← Singleton de connexion JDBC
├── controller/
│ └── EtudiantController.java ← Contrôleur JavaFX (logique UI)
└── view/
└── etudiant.fxml ← Interface graphique (FXML)
| Couche | Rôle |
|---|---|
Model (Etudiant.java) |
Représente un étudiant avec ses attributs. POJO pur, sans logique métier. |
DAO (EtudiantDAO.java) |
Isole toutes les requêtes SQL. Implémente les 4 opérations CRUD. |
Database (DatabaseConnection.java) |
Singleton qui gère la connexion JDBC. Évite d'ouvrir plusieurs connexions. |
Controller (EtudiantController.java) |
Fait le lien entre la vue FXML et le DAO. Gère les événements boutons, la validation, le TableView. |
View (etudiant.fxml) |
Décrit l'interface graphique en XML (BorderPane, TableView, formulaire). |
- Java 17 ou plus récent
- Maven 3.6+
- MySQL (MySQL Server ou XAMPP)
Option A — depuis MySQL Workbench, HeidiSQL ou phpMyAdmin :
-- Exécuter le fichier sql/gestion_etudiants.sqlOption B — depuis le terminal MySQL :
mysql -u root -p < sql/gestion_etudiants.sqlOption C — via Maven (connexion JDBC directe) :
mvn compile exec:java -Dexec.mainClass=SetupDatabaseÉditer src/database/DatabaseConnection.java selon votre configuration :
private static final String URL = "jdbc:mysql://localhost:3306/gestion_etudiants?useSSL=false&serverTimezone=UTC";
private static final String USER = "root"; // votre utilisateur MySQL
private static final String PASSWORD = ""; // votre mot de passe MySQL
### 3. Compiler et lancer
```bash
mvn clean javafx:run- Ajouter un étudiant via le formulaire (Enregistrer)
- Afficher tous les étudiants dans le TableView
- Modifier un étudiant sélectionné (clic ligne → modifier les champs → Enregistrer)
- Supprimer un étudiant avec confirmation
- Rechercher par nom, prénom ou filière
- Actualiser la liste depuis la base de données
- Validation des champs obligatoires et format email
- Java 17
- JavaFX 21
- JDBC (MySQL Connector/J 8.3.0)
- MySQL
- Maven 3