Correction EX02 initialisation()
Conditions d’achèvement
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class Main {
public static void main(String[] args) {
Connection connexion = initialisation();
if (connexion != null) {
try {
Statement statement = connexion.createStatement();
ResultSet resultSet = statement.executeQuery("SELECT * FROM aliments");
while (resultSet.next()) {
String nom = resultSet.getString("nom");
float poids_moyen = resultSet.getFloat("poids_moyen");
System.out.println("Nom: " + nom + ", Poids_moyen: " + poids_moyen);
}
} catch (SQLException e) {
System.out.println("Une erreur est survenue lors de l'exécution de la requête SQL.");
e.printStackTrace();
} finally {
try {
connexion.close();
} catch (SQLException e) {
System.out.println("Échec de la déconnexion de la base de données");
e.printStackTrace();
}
}
}
}
private static Connection initialisation() {
String url = "jdbc:mysql://localhost:3306/alimentations";
String utilisateur = "root";
String motDePasse = "";
Connection connexion = null;
try {
connexion = DriverManager.getConnection(url, utilisateur, motDePasse);
} catch (SQLException e) {
System.out.println("Échec de la connexion à la base de données");
e.printStackTrace();
}
return connexion;
}
}
1er stade de refactorisation:
Dans ce code, la méthode initialisation est responsable de la connexion à la base de données. Elle est appelée au début de la méthode main pour obtenir l'objet Connection. La gestion des exceptions et la fermeture de la connexion sont toujours effectuées dans le bloc finally pour s'assurer que la connexion est fermée correctement, même en cas d'erreur.
Modifié le: lundi 13 novembre 2023, 07:59