Problème du suppression des donnees en MYSQL via j2ee
Résolu
Etudiante
-
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
svp vous pouvez m'aider, je n'arrive pas a supprime les donnees dans ma base de donnee Mysql d'apres une formulaire par jsp j2ee.
voila mon code:
servlet:
et le code d'operation:
et la page jsp:
svp aider moi c urgant.
merci d'avance
svp vous pouvez m'aider, je n'arrive pas a supprime les donnees dans ma base de donnee Mysql d'apres une formulaire par jsp j2ee.
voila mon code:
servlet:
package web; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import metier.Chambre; import metier.Operation; import metier.Operation2; public class ChambreDelServlet extends HttpServlet { Operation2 op = new Operation2(); @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String cin = req.getParameter("CIN"); String nom = req.getParameter("nom"); ChambreDelBeans cb = new ChambreDelBeans(); op.remove(cin); cb.setListe(op.getALL()); req.setAttribute("model", cb); req.getRequestDispatcher("chambre2.jsp").forward(req, resp); } }
et le code d'operation:
public void remove(String cin) { try { Class.forName("com.mysql.jdbc.Driver"); Connection cn = DriverManager.getConnection("jdbc:mysql://localhost:3306/application_reservation","root",""); PreparedStatement pr = cn.prepareStatement("DELETE FROM 'chambre' WHERE 'cin'=?"); pr.setNString(1, cin); pr.executeUpdate(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } }
et la page jsp:
<% ChambreDelBeans chambress; if(request.getAttribute("model") != null) { chambress =(ChambreDelBeans)request.getAttribute("model"); } else { chambress=new ChambreDelBeans(); } %> <h3>Palais Al Firdaous</h3> <h5>Ajouter une chambre</h5> <form action="chambre2" method="post"> <table border="1" width="50%"> <tr> <td>Nom </td> <td><input type="text" name="nom"/></td> </tr> <tr> <td>CIN </td> <td><input type ="text" name="cin"/></td> </tr> <tr> <td colspan="2"><input type="submit" value="delete"/></td> </tr> <% Iterator<Chambre> list =chambress.getListe().iterator(); while(list.hasNext()){ Chambre c=list.next(); } %> </table> </form>
svp aider moi c urgant.
merci d'avance
A voir également:
- Problème du suppression des donnees en MYSQL via j2ee
- Fuite données maif - Guide
- Forcer suppression fichier - Guide
- Trier des données excel - Guide
- Sauvegarde des données - Guide
- Supprimer les données de navigation - Guide
2 réponses
Bonjour,
Dans ta requête
Remarque :
De plus, remove ne dépend pas de this, elle devrait donc être static, ça ne sert à rien de construire un objet Operation2 exprès.
Dans ta requête
DELETE FROM 'chambre' WHERE 'cin'=?enlèves les apostrophes :
DELETE FROM chambre WHERE cin=?
Remarque :
Class.forNamedoit être appelé une fois pour tout le programme, ça ne sert à rien de l'appeler à chaque requête.
De plus, remove ne dépend pas de this, elle devrait donc être static, ça ne sert à rien de construire un objet Operation2 exprès.
salut kx,
meme si j'ai enleve les apostrophes il n'y a aucun changement pas de suppression
meme si j'ai enleve les apostrophes il n'y a aucun changement pas de suppression
Rajoutes des logs dans ton programme pour savoir ce qu'il fait et voir où ça bloque.
Autre remarques : il faut fermer ta connexion quand tu as fini de t'en servir, je t'invite à utiliser le try-with-resources qui le gère automatiquement.
De plus, dans ta JSP, tu n'affiches rien, tu itères dans ta boucle, mais sans rien mettre dans ta page de résultat.
Exemple :
Autre remarques : il faut fermer ta connexion quand tu as fini de t'en servir, je t'invite à utiliser le try-with-resources qui le gère automatiquement.
De plus, dans ta JSP, tu n'affiches rien, tu itères dans ta boucle, mais sans rien mettre dans ta page de résultat.
Exemple :
@Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String cin = req.getParameter("CIN"); logger.info("doPost: CIN="+cin); String nom = req.getParameter("nom"); logger.info("doPost: nom="+nom); try { Operation2.remove(cin); } catch (SQLException e) { logger.info("doPost: error="+e); e.printStackTrace(); } ChambreDelBeans cb = new ChambreDelBeans(); cb.setListe(Operation2.getALL()); logger.info("doPost: model="+cb); req.setAttribute("model", cb); req.getRequestDispatcher("chambre2.jsp").forward(req, resp); }
public static void remove(String cin) throws SQLException { try (Connection cn = getConnection(); PreparedStatement pr = cn.prepareStatement("DELETE FROM chambre WHERE cin=?")) { pr.setString(1, cin); int n = pr.executeUpdate(); logger.info("remove: n="+n); } }
<% ChambreDelBeans chambress = (ChambreDelBeans) request.getAttribute("model"); if(chambress == null) { out.println("<h1>Attention: chambress == null</h1>"); chambress=new ChambreDelBeans(); } %> <% for (Chambre c : chambress.getListe()) { out.println(c); } %>