Problème du suppression des donnees en MYSQL via j2ee

Résolu/Fermé
Etudiante - Modifié par KX le 19/06/2016 à 21:04
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 - 19 juin 2016 à 21:43
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:
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:

2 réponses

KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
19 juin 2016 à 21:03
Bonjour,

Dans ta requête
DELETE  FROM 'chambre' WHERE 'cin'=?
enlèves les apostrophes :
DELETE  FROM chambre WHERE cin=?

Remarque :
Class.forName
doit ê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.
0
salut kx,
meme si j'ai enleve les apostrophes il n'y a aucun changement pas de suppression
0
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
19 juin 2016 à 21:43
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 :

@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);
    }
%>
0