package linea; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.SQLException; import java.sql.Statement; public class GestionnaireBDD { private Connection conn = null; private static final String DB_FILE = "linea_scores.db"; public GestionnaireBDD() { try { // URL de connexion pour SQLite String url = "jdbc:sqlite:" + DB_FILE; // Établir la connexion conn = DriverManager.getConnection(url); System.out.println("Connexion à la base de données SQLite établie."); // S'assurer que la table pour les scores existe creerTableSiNecessaire(); } catch (SQLException e) { System.err.println("Erreur de connexion à la base de données : " + e.getMessage()); } } private void creerTableSiNecessaire() { String sql = "CREATE TABLE IF NOT EXISTS parties (\n" + " id INTEGER PRIMARY KEY AUTOINCREMENT,\n" + " duree_secondes INTEGER NOT NULL,\n" + " campagne_id INTEGER NOT NULL,\n" + " difficulte_id INTEGER NOT NULL,\n" + " score INTEGER NOT NULL,\n" + " date_partie TIMESTAMP DEFAULT CURRENT_TIMESTAMP\n" + ");"; // 'try-with-resources' assure que le Statement est bien fermé try (Statement stmt = conn.createStatement()) { stmt.execute(sql); } catch (SQLException e) { System.err.println("Erreur lors de la création de la table : " + e.getMessage()); } } public void enregistrerPartie(int dureePartie, int idCampagne, int idDifficulte, int score) { if (conn == null) { System.err.println("Impossible d'enregistrer la partie : pas de connexion à la BDD."); return; } String sql = "INSERT INTO parties(duree_secondes, campagne_id, difficulte_id, score) VALUES(?,?,?,?)"; try (PreparedStatement pstmt = conn.prepareStatement(sql)) { pstmt.setInt(1, dureePartie); pstmt.setInt(2, idCampagne); pstmt.setInt(3, idDifficulte); pstmt.setInt(4, score); pstmt.executeUpdate(); System.out.println("Partie enregistrée avec succès ! Score : " + score); } catch (SQLException e) { System.err.println("Erreur lors de l'enregistrement de la partie : " + e.getMessage()); } } public void fermerConnexion() { try { if (conn != null && !conn.isClosed()) { conn.close(); System.out.println("Connexion à la base de données fermée."); } } catch (SQLException ex) { System.err.println("Erreur lors de la fermeture de la connexion BDD : " + ex.getMessage()); } } }