Problème requête de suppression j2ee

Fermé
comondo123 Messages postés 10 Date d'inscription vendredi 3 janvier 2014 Statut Membre Dernière intervention 4 mai 2014 - 14 mars 2014 à 22:28
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 - 14 mars 2014 à 23:21
j'ai problème de la suppression pour supprimer les données
if(dn != null){
Iterator list = dn.selectAllist().iterator();
while(list.hasNext()){
donner s = (donner)list.next();%>
<tr>
<td><%=s.getId() %></td>

<td><%=s.getnom() %></td>

<td><%=s.getprenom() %></td>
<td>

<td><a href='donner?id=<%=s.getId()%>'>Supprimer</a>
</td>
...........................
public void remove(Long id){
Connection conn = connection.getConnection();
String req = "DELETE FROM utilisateur WHERE id= ?";
try{
PreparedStatement pr =conn.prepareStatement(req);
pr.setLong(1,new Long(id));
pr.executeUpdate();
}catch(SQLException e){
e.printStackTrace();
}
}

1 réponse

KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
14 mars 2014 à 23:21
En Java EE il est absolument important de respecter les conventions de nommage car un certains nombres de fonctionnalités vont construire du code dynamiquement, en supposant que ces conventions sont respectées !

Remarque : évite les scriptlets (le code en <% %>), si tu as compris l'intérêt des preparedStatement et le danger que représente l'injection SQL, et bien c'est le même risque avec les scriptlets... on peut contourner l'utilisation de la jsp et y injecter n'importe quel code Java pour faire tout et n'importe quoi !

<%
    if (dn != null)
    {
        for (Donner s : dn)
        {
%>
            <tr>
                <td><%= s.getId() %></td>
                <td><%= s.getNom() %></td>
                <td><%= s.getPrenom() %></td>
                <td><a href='donner?id=<%= s.getId() %>'>Supprimer</a></td>
            </tr>
<%
        }
    }
%>

/**
 * @return le nombre de lignes supprimées, -1 en cas d'erreur
 */
public int remove(Long id)
{
    String req = "DELETE FROM utilisateur WHERE id = ?";
    
    Connection conn = null;
    PreparedStatement stmt = null;
    
    try
    {
        conn = DriverManager.getConnection("url", "user", "pwd");
        stmt = conn.prepareStatement(req);
        stmt.setLong(1, id);
        return stmt.executeUpdate();
    }
    catch (Exception e)
    {
        e.printStackTrace();
        return -1;
    }
    finally
    {
        if (stmt != null)
        {
            try
            {
                stmt.close();
            }
            catch (Exception e)
            {
            }
        }
        
        if (conn != null)
        {
            try
            {
                conn.close();
            }
            catch (Exception e)
            {
            }
        }
    }
}
0