diff --git a/src/fr/iutfbleau/papillon/model/BaseDeDonnees.java b/src/fr/iutfbleau/papillon/model/BaseDeDonnees.java index ddcfdad..19d626e 100644 --- a/src/fr/iutfbleau/papillon/model/BaseDeDonnees.java +++ b/src/fr/iutfbleau/papillon/model/BaseDeDonnees.java @@ -1,38 +1,85 @@ -package fr.iutfbleau.papillon.model; -import org.mariadb.jdbc.MariaDbDataSource; - -import java.sql.Connection; -import java.sql.SQLException; +import java.sql.*; +import java.util.ArrayList; +import java.util.List; public class BaseDeDonnees { - private static Connection connexion; + + private static final String URL = "jdbc:mariadb://dwarves.iut-fbleau.fr:3306/yolou"; + private static final String USER = "yolou"; + private static final String PASS = "serikhaneyolou"; + - public static Connection getConnexion() { - if (connexion == null) { - try { - MariaDbDataSource dataSource = new MariaDbDataSource(); - dataSource.setUrl("jdbc:mariadb://localhost:3307/papillon"); - dataSource.setUser("root"); - dataSource.setPassword("mdp"); - - connexion = dataSource.getConnection(); - System.out.println(" Connexion réussie !"); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return connexion; - } - - public static void fermer() { + /** Connexion */ + public static Connection connecter() throws SQLException { try { - if (connexion != null && !connexion.isClosed()) { - connexion.close(); - System.out.println(" Connexion fermée."); + Class.forName("org.mariadb.jdbc.Driver"); + } catch (ClassNotFoundException ignore) {} + return DriverManager.getConnection(URL, USER, PASS); + } + + /** INSERT renvoie l'id généré. */ + public static int ajouter(Rappel r) throws SQLException { + String sql = "INSERT INTO rappel(titre, contenu, theme, rang) VALUES (?,?,?,?)"; + try (Connection cnx = connecter(); + PreparedStatement pst = cnx.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS)) { + pst.setString(1, r.getTitre()); + pst.setString(2, r.getContenu()); + pst.setString(3, r.getTheme()); + pst.setInt(4, r.getRang()); + pst.executeUpdate(); + + try (ResultSet rs = pst.getGeneratedKeys()) { + if (rs.next()) { + int id = rs.getInt(1); + r.setId(id); + return id; + } } - } catch (SQLException e) { - e.printStackTrace(); + return 0; } } -} \ No newline at end of file + + /** SELECT * ORDER BY rang, id. */ + public static List lister() throws SQLException { + String sql = "SELECT id, titre, contenu, theme, rang FROM rappel ORDER BY rang ASC, id ASC"; + List res = new ArrayList<>(); + try (Connection cnx = connecter(); + PreparedStatement pst = cnx.prepareStatement(sql); + ResultSet rs = pst.executeQuery()) { + while (rs.next()) { + res.add(new Rappel( + rs.getInt("id"), + rs.getString("titre"), + rs.getString("contenu"), + rs.getString("theme"), + rs.getInt("rang"))); + } + } + return res; + } + + /** UPDATE par id. */ + public static int modifier(int id, Rappel r) throws SQLException { + String sql = "UPDATE rappel SET titre=?, contenu=?, theme=?, rang=? WHERE id=?"; + try (Connection cnx = connecter(); + PreparedStatement pst = cnx.prepareStatement(sql)) { + pst.setString(1, r.getTitre()); + pst.setString(2, r.getContenu()); + pst.setString(3, r.getTheme()); + pst.setInt(4, r.getRang()); + pst.setInt(5, id); + return pst.executeUpdate(); + } + } + + /** DELETE par id. */ + public static int supprimer(int id) throws SQLException { + String sql = "DELETE FROM rappel WHERE id=?"; + try (Connection cnx = connecter(); + PreparedStatement pst = cnx.prepareStatement(sql)) { + pst.setInt(1, id); + return pst.executeUpdate(); + } + } +}