COURS : Connexion à une base de données MySQL avec Java (JDBC)
1. Structure générale du projet
- DatabaseHelper.java : classe utilitaire pour gérer les connexions et requêtes SQL (Singleton).
- Main.java : ajoute une nouvelle filière.
- Main1.java : ajoute une nouvelle classe liée à une filière.
2. Connexion à la base de données (DatabaseHelper.java)
Objectif : Créer une seule instance pour gérer la connexion (Singleton).
Code clé :
private static DatabaseHelper db;
private static Connection cnx;
public static DatabaseHelper getInstance() {
if (db == null) db = new DatabaseHelper();
return db;
Connexion :
Class.forName("com.mysql.cj.jdbc.Driver");
cnx = DriverManager.getConnection("jdbc:mysql://localhost:3306/scolarite", "root", "");
3. Préparation et exécution des requêtes
a. Préparer une requête SQL :
public void prepareQuery(String sql) {
pstmt = cnx.prepareStatement(sql);
}
b. Ajouter les paramètres dynamiques :
public void addParameters(Object[] parameters) {
for (int i = 0; i < parameters.length; i++) {
pstmt.setObject(i + 1, parameters[i]);
c. Exécuter une requête SELECT :
public ResultSet executeSelect() {
return pstmt.executeQuery();
d. Exécuter une requête de mise à jour :
public int executeMaj() {
return pstmt.executeUpdate();
4. Utilisation dans Main.java : Ajouter une filière
Objectif :
- Saisir nom et libellé d'une filière
- Insérer dans la base de données
- Afficher toutes les filières existantes
5. Utilisation dans Main1.java : Ajouter une classe
Étapes :
1. Saisie des données
2. Sélection d'une filière existante
3. Insertion d'une nouvelle classe
4. Affichage de toutes les classes
6. Bonnes pratiques
- Utiliser try/catch pour gérer les erreurs SQL.
- Fermer les ResultSet après usage.
- Utiliser DatabaseHelper pour éviter la duplication de code.
7. Concepts appris
- JDBC : API Java pour bases de données
- Singleton : une seule instance
- PreparedStatement : sécurisation des requêtes
- ResultSet : résultats de requête SELECT