Problème du suppression des donnees en MYSQL via j2ee
Résolu
Etudiante
-
KX Messages postés 19031 Statut Modérateur -
KX Messages postés 19031 Statut Modérateur -
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
2 réponses
-
Bonjour,
Dans ta requêteDELETE 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. -
salut kx,
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 :
@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); } %>
-