From 7c5ad53e764ffc6a9d40071ec328e797fc354357 Mon Sep 17 00:00:00 2001 From: polo-pc-greta Date: Mon, 17 Feb 2025 15:28:07 +0100 Subject: =?UTF-8?q?2=20modes=20connexion=20qui=20reste=20ouverte=20ou=20fe?= =?UTF-8?q?rmeture=20imm=C3=A9diate?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/modele/DAO_Test.java | 57 ++++++++++++++++++++++++++++++++++-------------- 1 file changed, 41 insertions(+), 16 deletions(-) (limited to 'src/modele/DAO_Test.java') diff --git a/src/modele/DAO_Test.java b/src/modele/DAO_Test.java index bf38d97..98180ad 100644 --- a/src/modele/DAO_Test.java +++ b/src/modele/DAO_Test.java @@ -1,12 +1,13 @@ -/* pour tester les classes, fichier à supprimer */ +/* pour tester les classes */ package modele; +import java.sql.ResultSet; +//import java.sql.ResultSetMetaData; import java.sql.SQLException; +import java.util.ArrayList; import java.util.HashMap; - import modele.dao.JDBC; -import modele.dao.ResultObject; import modele.dao.SQLexecutor; /* @@ -16,11 +17,12 @@ public class DAO_Test { public static void main(String[] args) throws SQLException, ClassNotFoundException { - // envoie de tous les paramètres en même temps + /* paramètres de la BDD à envoyer une fois au début*/ + + // version envoi tout en même temps JDBC.setInfos("localhost", "mysql", "tp", "root", ""); - // même chose avec envoie un par un - // si un paramètre doit être modifié à la volée, faire un JDBC.setStrUlr(); après + // version envoie un par un, finir par un JDBC.setStrUlr(); JDBC.setHost("localhost"); JDBC.setDBMS("mysql"); JDBC.setDbName("tp"); @@ -28,27 +30,50 @@ public class DAO_Test JDBC.setPassword(""); JDBC.setStrUrl(); + + /* début du contrôleur */ SQLexecutor executor = new SQLexecutor(); - // SELECT - ResultObject result = executor.executeQuery("SELECT * FROM acces WHERE id = ?", 1); - for(HashMap row : result.getData()) // foreach sur les entrées + + executor.setCopyMode(false); // mode copie désactivé (= mode normal) + // un SELECT produit un ResultSet + // ne pas oublier de fermer la connexion à la fin du contrôleur + executor.executeQuery("SELECT * FROM acces WHERE id = ?", 1); + ResultSet result1 = executor.getResultSet(); + while(result1.next()) { - System.out.println("prénom: " + row.get("prenom")); //un champ d'une entrée + System.out.println("prénom: " + result1.getString("prenom")); + } + + // les requêtes INSERT, UPDATE et DELETE utilise la connexion ouverte et la laissent ouverte + executor.executeQuery("INSERT INTO acces (prenom, login, password, statut, age) VALUES (?, ?, ?, ?, ?)", "Dylan", "Toto", "Titi", "Etudiant", 22); + executor.executeQuery("UPDATE acces SET statut = ? WHERE prenom = ?", "joue à fortnite", "Dylan"); + executor.executeQuery("DELETE FROM acces WHERE prenom = ?", "Dylan"); + + executor.close(); // fermeture !! + + + + executor.setCopyMode(true); // mode copie activé + // un SELECT produit une copie dans une array list d'hashmap + // la connexion est fermée automatiqument après chaque requête + executor.executeQuery("SELECT * FROM acces WHERE id = ?", 2); + ArrayList> result2 = executor.getResultCopy(); + + for(HashMap row : result2) // foreach sur les entrées + { + // obtenir un champ d'une entrée + System.out.println("prénom: " + row.get("prenom")); - for(HashMap.Entry one_field : row.entrySet()) // foreach sur les champs + // tout afficher avec "foreach" + for(HashMap.Entry one_field : row.entrySet()) { System.out.print(one_field.getKey() + ": " + one_field.getValue() + "\n"); } } - // INSERT executor.executeQuery("INSERT INTO acces (prenom, login, password, statut, age) VALUES (?, ?, ?, ?, ?)", "Dylan", "Toto", "Titi", "Etudiant", 22); - - // UPDATE executor.executeQuery("UPDATE acces SET statut = ? WHERE prenom = ?", "joue à fortnite", "Dylan"); - - // DELETE executor.executeQuery("DELETE FROM acces WHERE prenom = ?", "Dylan"); } } -- cgit v1.2.3