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