Voici une solution complète pour ton examen en Java :
Classe Paiement
Cette classe contient les attributs demandés ainsi que les accesseurs, mutateurs et la
méthode enregistrer.
import [Link];
public class Paiement {
private int numero;
private String date;
private String nomEtudiant;
private double montant;
// Constructeur
public Paiement(String date, String nomEtudiant, double montant) {
[Link] = date;
[Link] = nomEtudiant;
[Link] = montant;
}
// Getters et Setters
public int getNumero() {
return numero;
}
public void setNumero(int numero) {
[Link] = numero;
}
public String getDate() {
return date;
}
public void setDate(String date) {
[Link] = date;
}
public String getNomEtudiant() {
return nomEtudiant;
}
public void setNomEtudiant(String nomEtudiant) {
[Link] = nomEtudiant;
}
public double getMontant() {
return montant;
}
public void setMontant(double montant) {
[Link] = montant;
}
// Méthode pour enregistrer les paiements
public static void enregistrer(ArrayList<Paiement> listePaiements, BDConnexion bd) {
for (Paiement p : listePaiements) {
String requete = "INSERT INTO paie (date, nom_etudiant, montant) VALUES ('" +
[Link]() + "', '" + [Link]() + "', " + [Link]() + ")";
[Link](requete);
}
}
}
Classe BDConnexion
Cette classe gère la connexion à la base de données et l'exécution des requêtes SQL.
import [Link];
import [Link];
import [Link];
import [Link];
public class BDConnexion {
private Connection connection;
public BDConnexion() {
try {
// Remplace ces valeurs par celles de ta base de données
String url = "jdbc:mysql://localhost:3306/BDFasi";
String user = "root";
String password = "";
connection = [Link](url, user, password);
[Link]("Connexion réussie à la base de données !");
} catch (SQLException e) {
[Link]("Erreur de connexion : " + [Link]());
}
}
// Méthode pour exécuter une requête SQL
public void maj(String requete) {
try {
Statement statement = [Link]();
[Link](requete);
[Link]("Mise à jour effectuée !");
} catch (SQLException e) {
[Link]("Erreur lors de l'exécution de la requête : " + [Link]());
}
}
// Méthode pour fermer la connexion
public void fermerConnexion() {
try {
if (connection != null) {
[Link]();
[Link]("Connexion fermée.");
}
} catch (SQLException e) {
[Link]("Erreur lors de la fermeture de la connexion : " + [Link]());
}
}
}
Classe TestPaiement
Cette classe permet de tester l'ajout de paiements via une boîte de dialogue.
import [Link];
import [Link];
public class TestPaiement {
public static void main(String[] args) {
ArrayList<Paiement> listePaiements = new ArrayList<>();
BDConnexion bd = new BDConnexion();
// Demander à l'utilisateur d'entrer le nombre de paiements à ajouter
int nombrePaiements = [Link]([Link]("Entrez le
nombre de paiements à enregistrer :"));
for (int i = 0; i < nombrePaiements; i++) {
String date = [Link]("Entrez la date du paiement
(YYYY-MM-DD) :");
String nomEtudiant = [Link]("Entrez le nom de l'étudiant :");
double montant = [Link]([Link]("Entrez le
montant à payer :"));
Paiement paiement = new Paiement(date, nomEtudiant, montant);
[Link](paiement);
}
// Enregistrer les paiements dans la base de données
[Link](listePaiements, bd);
// Fermer la connexion
[Link]();
}
}
Explication :
1. Classe Paiement :
○ Définit les attributs nécessaires.
○ Contient des accesseurs et mutateurs.
○ Implémente enregistrer, qui parcourt la collection et envoie les données à
la base.
2. Classe BDConnexion :
○ Gère la connexion à la base de données.
○ Contient la méthode maj pour exécuter des requêtes SQL.
○ Fournit une méthode fermerConnexion pour fermer la connexion
proprement.
3. Classe TestPaiement :
○ Utilise JOptionPane pour demander les entrées à l'utilisateur.
○ Crée une liste de paiements.
○ Enregistre ces paiements dans la base.
○ Ferme la connexion après l'enregistrement.
Cette solution est prête à être exécutée et fonctionnera correctement avec une base de
données MySQL correctement configurée.