IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Servlets/JSP Java Discussion :

Modifier un enregistrement avec le modèle DAO et les procedures stockées.


Sujet :

Servlets/JSP Java

  1. #1
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2014
    Messages
    352
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2014
    Messages : 352
    Points : 349
    Points
    349
    Par défaut Modifier un enregistrement avec le modèle DAO et les procedures stockées.
    Bonjour à tous,

    j'ai un problème de modification dans mon projet.Au fait, quand je cliques sur le lien de modification le formulaire de modification s'affiche sans les informations de l'enregistrement que je veux modifier
    (c'est à dire au lieu de m'afficher un formulaire avec des champs remplis ça m'affiche un formulaire avec des champs vides).

    voici le code de EtudiantDaoImpl :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
    public class EtudiantDaoImpl implements EtudiantDao {
    	private static final String SelectionCons = "call SelectionEtudiant()";
    	private static final String insertionEtudiant = "call AjoutEtudiant(?,?,?,?)";
    	private static final String suppressionEtudiant = "call SuppressionEtudiant(?)";
    	private static final String SelectionParNumEtudiantCons = "call SelectionParNumEtudiant(?)";
     
    public List<Etudiant> EtudiantSelectionner(String NumEtudiant) throws DAOException {
    		 Connection connexion = null;
    	     PreparedStatement preparedStatement = null;
    	     ResultSet resultat = null;
             List<Etudiant> resultas = new ArrayList<Etudiant>();
    	     try{
     
    	    	 connexion = daoFactory.getConnection();
    	    	 preparedStatement = connexion.prepareStatement(SelectionParNumEtudiantCons);
    	    	 preparedStatement.setString(1, NumEtudiant);
     
    	    	 resultat = preparedStatement.executeQuery();
    	    	 while(resultat.next()){
    	    		 resultas.add(Stockage(resultat)); 
    	    	 }
    	     }catch(SQLException s){
    	    	 throw new DAOException("Votre rêquete a trouvé de(s) enregistrement(s).");
    	     }finally{
    	    	 fermeturesSilencieuses(resultat,preparedStatement,connexion);
    	     }
    		return resultas;
     
    	}
    }
    Voici le code la servlet :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
           String matricule = request.getParameter(matriculeCons);
     
            HttpSession session = request.getSession(); 
           Map<String,Etudiant> resultas = (HashMap<String, Etudiant>) session.getAttribute(sessionEtudiantUnique);
           if(matricule != null && resultas != null){
           try{
               Etudiant etudiant = new Etudiant();
        	   etudiantDao.EtudiantSelectionner(matricule); 
     	      resultas.put(etudiant.getNumEtudiant(),etudiant);
     	      resultas.put(etudiant.getNomEtudiant(),etudiant);
     	      resultas.put(etudiant.getPrenomEtudiant(),etudiant);
     	      resultas.put(etudiant.getAdresseEtudiant(),etudiant);
     
             }catch(DAOException d){
        	  d.printStackTrace();
              }
     
              session.setAttribute(sessionEtudiantUnique, resultas);
           }
          this.getServletContext().getRequestDispatcher(cheminModif).forward(request, response); 
    	}

    Voici le code la jsp :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Création d'un etudiant</title>
    <link type="text/css" rel="stylesheet" href="<c:url value ="inc/style.css"/>"/>
    </head>
    <body>
    <c:choose>
    <c:when test = "${empty sessionScope.resultas}">
    <c:out value = "La map est vide."/>
    </c:when>
    <c:otherwise>
    <c:forEach items = "${sessionScope.resultas}" var = "mapEtudian">
    <div>
    <c:import url = "/inc/menu.jsp"/>
    <form  method="post" action = "<c:url value="/etudiant"/>">
    <fieldset>
    <legend>Informations etudiant</legend>
     
    <label for="nomClient">Matricule <span
    class="requis">*</span></label>
    <input type="text" id="nomClient"
    name="matricule" value="<c:out value = "${mapEtudian.value.numEtudiant}"/>" size="20" maxlength="20" />
     
    <br />
    <label for="nomClient">Nom <span
    class="requis">*</span></label>
    <input type="text" id="nomClient"
    name="nom" value="<c:out value = "${mapEtudian.value.nomEtudiant}"/>" size="20" maxlength="20" />
     
    <br />
    <label for="prenomClient">Prénom </label>
    <input type="text" id="prenomClient"
    name="prenom" value="<c:out value = "${mapEtudian.value.prenomEtudiant}"/>" size="20" maxlength="20" />
     
    <br />
    <label for="adresseClient">Adresse 
    <span class="requis">*</span></label>
    <input type="text" id="adresseClient"
    name="adresse" value="<c:out value = "${mapEtudian.value.adresseEtudiant}"/>" size="20" maxlength="20" />
     
    <br />
    </c:forEach>
    </c:otherwise>
    </c:choose>
    </fieldset>
    <input type="submit" value="Valider"  />
    <input type="reset" value="Remettre à zéro" /> <br/>
    </form>
    </div>
    </body>
    </html>
    J'ai réussi pour l'insertion,la sélection et la suppression.
    Votre aide m'aidera beaucoup à réaliser le TP que notre enseignant nous a confié.Merci d'avance!!!

  2. #2
    Membre expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 851
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 851
    Points : 3 481
    Points
    3 481
    Par défaut
    Bonjour,

    Quel IDE utilises-tu ?

    Indépendamment de l'IDE (si tu utilises eclipse tu peux débugger) je te conseillerais de repérer l'endroit où tu perds les informations. Tu fais un "debug" (en System.out.println si ton projet n'a pas de logger) dans ton DAO pour savoir si tu as un resultat à ta requête, ainsi tu sauras déjà si c'est là que ça bug.

    Tu fais de même dans ta servlet, et sur ta page aussi, tu affiches la taille de ton objet. Ainsi tu trouveras l'endroit où tu perds les infos.

    Cependant, je suis intrigué par cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    session.setAttribute(sessionEtudiantUnique, resultas);
    Lorsque tu récupères dans ta JSP le contenu de ta variable "resultas", tu dois la récupérer avec le nom contenu dans la variable "sessionEtudiantUnique", donc là à ta place, je ferais plutôt ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    session.setAttribute("resultas", resultas);
    Pour voir si ça aide pas.

    A+
    K

  3. #3
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2014
    Messages
    352
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2014
    Messages : 352
    Points : 349
    Points
    349
    Par défaut
    Bonsoir,

    J'utilise l'IDE eclipse et je ne sais comment debuguer. Pouvez-vous me dire comment procéder?
    pour ce qui est de la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    session.setAttribute(sessionEtudiantUnique, resultas);
    C'est une constante que j'ai créée dans laquelle j'ai affecté "resultas". J'ai même remplacé "sessionEtudiantUnique" par "resultas" ça n'a pas marché.Merci d'avance!!!

  4. #4
    Membre expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 851
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 851
    Points : 3 481
    Points
    3 481
    Par défaut
    Salut,

    Essaie peut-être de récupérer ton objet avec la balise suivante, pour voir si ça change quelque chose :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <jsp:useBean id="resultas" class="Map" scope="session" />
    K

  5. #5
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2014
    Messages
    352
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2014
    Messages : 352
    Points : 349
    Points
    349
    Par défaut
    Ok!!!

Discussions similaires

  1. Procédure stockée avec le modèle DAO
    Par Kasko dans le forum Persistance des données
    Réponses: 3
    Dernier message: 26/02/2015, 01h19
  2. [MySQL] probleme avec les procedures stockées
    Par searchf dans le forum PHP & Base de données
    Réponses: 0
    Dernier message: 19/05/2010, 11h16
  3. Problème avec les procedures stockées.
    Par saymon dans le forum Développement
    Réponses: 1
    Dernier message: 14/04/2009, 13h50
  4. Réponses: 5
    Dernier message: 04/03/2007, 15h33
  5. Modifier requête avec l'objet DAO
    Par vuong1 dans le forum VBA Access
    Réponses: 7
    Dernier message: 07/08/2006, 21h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo