Partage
  • Partager sur Facebook
  • Partager sur Twitter

Resultat de ma recherche qui ne s'affiche pas

expression manquant

Sujet résolu
    23 novembre 2014 à 13:58:01

    Bonjour,

    j'ai fais un formulaire de recherche en java et jsp jdbc mais le resultat ne s'affiche pas :/
    L'erreur est :
    java.sql.SQLException: ORA-00936: missing expression

    j'ai beau chercher je ne vois pas trop ou ca bloque :/

    la ou je tape la recherche :

    <form name="form" action="form.jsp">
            Veuillez taper un nom : <input type="text" name="lenom" value="" size="25" /><br>
            <input type="submit" value="OK" name="bouton_ok" />
            <input type="reset" value="Effacer" name="bouton_reset" />
            </form>

     form.jps :

    <%= "Recherche de la personne :"%>
    <%= request.getParameter("lenom") %><br>
    <jsp:useBean id="liste" scope="session" class="model.gestion.GestionPers" />
    <jsp:useBean id="maRecherche" scope="session" class="model.Personne"/>
    
    <div class="table">
    		<img src="img/bg-th-left.gif" width="8" height="7" alt="" class="left" />
    		<img src="img/bg-th-right.gif" width="7" height="7" alt="" class="right" />
        <table class="listing" cellpadding="0" cellspacing="0">
        
            <tr>
                <th class="first" width="177"><b>Nom</b></th>
                <th><b>Prenom</b></th>
            </tr>
    
    
    <%
        maRecherche = null ;
        maRecherche = liste.getMaPers();
        int rowCount = 0;
        int startRow = 0;
        if (liste.rechercherPers()) {
            String start = (String) request.getParameter("start");
                if (start != null) {
                startRow = new Integer(start).intValue();
                liste.setStartRow(startRow);
            }
                    while (rowCount < 10 && liste.nextRow() > 0) {
                    rowCount++;
    %>
    <%= "Personne trouvee :" %>
    <tr>
                <td width="20%" align="center"> 
                    <%
                        String unNom = maRecherche.getNom();
                        out.println(unNom);                 
                    %>
                </td>
                <td width="20%" align="center">
                    <%
                        String unPrenom = maRecherche.getPrenom();
                        out.println(unPrenom);                    
                    %>
                </td>
    </tr>
    
    <%
                }
        }
    %>
    </table>
    <form name="retour" action="index.jsp">
    <input type="submit" value="Retour" name="retour" />
    </form>

     et ma fonction de recherche :

    public boolean rechercherPers() { 
            conn = ConnectionManager.getConnection();
            recherche = new ArrayList() ; 
            
            if (recherche.isEmpty()) {
                try {
                  
                Statement st = conn.createStatement();
                ResultSet rs = st.executeQuery("Select idPersonne,nom,prenom,datenaissance,sexe,statut,vie,profession, from Personne where nom like '"+personneRechercher+"%'");
                
                recherche.clear();
                rowCount = 0;
                
                    while (rs.next()) {
                    Personne maPers = new Personne();
                    
                    maPers.setIdPersonne(rs.getString(1));
                    maPers.setNom(rs.getString(2));
                    maPers.setPrenom(rs.getString(3));
                    maPers.setDateNaissance(rs.getDate(4));
                    maPers.setSexe(rs.getString(5));
                    maPers.setStatut(rs.getString(6));
                    maPers.setVie(rs.getString(7));
                    maPers.setProfession(rs.getString(8));
                    recherche.add(maPers);
                    System.out.println(recherche);
                    
                    rowCount++;
                } 
            }
                // Affiche l'Exception //
                catch (Exception e) {
                System.out.println("Erreur obtenue : "+ e.toString());
            return false;
            }
        }
            return true;
    
            }

    pouvez vous me dire ce qui ne va pas svp :/ Merci a vous

    • Partager sur Facebook
    • Partager sur Twitter
      23 novembre 2014 à 14:36:35

      Une erreur de type java.sql.SQLException signifie que tu as un problème avec ta base de données. Il faut donc que tu concentre tes recherches vers tes classes DAO et plus particulièrement vers tes requêtes SQL.

      Dans ton cas, il y a un problème dans ta requête, un ',' est de trop (après profession)


      Bonne journée

      • Partager sur Facebook
      • Partager sur Twitter
        23 novembre 2014 à 14:56:54

        apres avoir corriger la requete et mis :

        (Select idPersonne,nom,prenom,datenaissance,sexe,statut,vie,profession from Personne where nom like '"+personneRechercher+"'")

        plus d'erreur mais rien qui s'affiche, tableau vide meme pas de null lol

        • Partager sur Facebook
        • Partager sur Twitter
          23 novembre 2014 à 15:11:34

          rowCount vaut combien après la requête?
          • Partager sur Facebook
          • Partager sur Twitter
            23 novembre 2014 à 15:33:13

            Elle varie selon le resultat obtenu
            J'ai fait une recherche sur le nom Marc par exemple, et dans ma table il y a 1 Marc mais rien n'y fait
            • Partager sur Facebook
            • Partager sur Twitter
              23 novembre 2014 à 16:09:10

              Quand tu fait une recherche sur Marc, as-tu vérifié que recherche.size() =1?
              • Partager sur Facebook
              • Partager sur Twitter
                23 novembre 2014 à 16:24:00

                effectivement il n'y a rien dedans :/
                • Partager sur Facebook
                • Partager sur Twitter
                  23 novembre 2014 à 16:28:39

                  Ca donne quoi System.out.println("Select idPersonne,nom,prenom,datenaissance,sexe,statut,vie,profession from Personne where nom like '"+personneRechercher+");
                  • Partager sur Facebook
                  • Partager sur Twitter
                    23 novembre 2014 à 17:03:00

                    je viens de faire ca :

                    <%
                        maRecherche = null ;
                        maRecherche = rechercheGestion.getMaPers();
                        int rowCount = 0;
                        int startRow = 0;
                        if (rechercheGestion.rechercherPers()) {
                            String start = (String) request.getParameter("start");
                            
                                if (start != null) {
                                startRow = new Integer(start).intValue();
                                rechercheGestion.setStartRow(startRow);
                            }else{
                                    System.out.println(start);
                                }
                                    while (rowCount < 10 && rechercheGestion.nextRow() > 0) {
                                    rowCount++;
                    %>

                    et ca me donne : null



                    • Partager sur Facebook
                    • Partager sur Twitter
                      23 novembre 2014 à 17:58:47

                      Je te demande de faire un System.out.println() de la requête SQL que tu tentes d'exécuter.

                      Sans cette information, je ne peux pas t'aider

                      • Partager sur Facebook
                      • Partager sur Twitter
                        23 novembre 2014 à 18:45:53

                        ok, je ne sais pas si j'ai fais ce que tu veux exactement mais j'ai fait un println de ma requette et ca donne :

                        select * from Personne where nom like 'model.Personne@19f235e'
                        oracle.jdbc.driver.OracleResultSetImpl@e70b3c

                         public boolean rechercherPers() { 
                                conn = ConnectionManager.getConnection();
                                recherche = new ArrayList() ; 
                                
                                if (recherche.isEmpty()) {
                                    try {
                                      
                                    Statement st = conn.createStatement();
                                    ResultSet rs = st.executeQuery("select * from Personne where nom = '"+personneRechercher+"'");
                                    System.out.println(rs);
                                    recherche.clear();
                                    rowCount = 0;
                                    
                                        while (rs.next()) {
                                        Personne maPers = new Personne();
                                        
                                        maPers.setIdPersonne(rs.getString(1));
                                        maPers.setNom(rs.getString(2));
                                        maPers.setPrenom(rs.getString(3));
                                        maPers.setDateNaissance(rs.getDate(4));
                                        maPers.setSexe(rs.getString(5));
                                        maPers.setStatut(rs.getString(6));
                                        maPers.setVie(rs.getString(7));
                                        maPers.setProfession(rs.getString(8));
                                        recherche.add(maPers);
                                        System.out.println(recherche);
                                        rowCount++;
                                    } 
                                }
                                    // Affiche l'Exception //
                                    catch (Exception e) {
                                    System.out.println("Erreur obtenue : "+ e.toString());
                                return false;
                                }
                            }
                                return true;
                        
                                }
                        public int nextRow() {
                                
                                if (getCurrentRow() == rowCount) {
                                    setCurrentRow(0); // Reset 
                                return 0; // return 0 pour inquer la fin
                                }
                                pers.setIdPersonne(((Personne)recherche.get(getCurrentRow())).getIdPersonne());
                                pers.setNom(((Personne)recherche.get(getCurrentRow())).getNom());
                                pers.setPrenom(((Personne)recherche.get(getCurrentRow())).getPrenom());
                                pers.setDateNaissance(((Personne)recherche.get(getCurrentRow())).getDateNaissance());
                                pers.setSexe(((Personne)recherche.get(getCurrentRow())).getSexe());
                                pers.setStatut(((Personne)recherche.get(getCurrentRow())).getStatut());
                                pers.setVie(((Personne)recherche.get(getCurrentRow())).getVie());
                                pers.setProfession(((Personne)recherche.get(getCurrentRow())).getProfession());
                                
                                setCurrentRow(getCurrentRow() + 1);
                                
                                return getCurrentRow();
                                }




                        -
                        Edité par Aliali23 23 novembre 2014 à 19:12:30

                        • Partager sur Facebook
                        • Partager sur Twitter
                          23 novembre 2014 à 20:13:47

                          Est-ce que tu t'es rendu compte que ta requête SQL est mauvaise?

                          Tu devrais pouvoir la modifier si tu as compris ton erreur.

                          • Partager sur Facebook
                          • Partager sur Twitter

                          Resultat de ma recherche qui ne s'affiche pas

                          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                          • Editeur
                          • Markdown