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

JDBC Java Discussion :

Ma requête ne retourne rien!


Sujet :

JDBC Java

  1. #1
    Membre à l'essai
    Inscrit en
    Juillet 2007
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 26
    Points : 17
    Points
    17
    Par défaut Ma requête ne retourne rien!
    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
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    public void connexionBD() {
     try
     {
     Class.forName("oracle.jdbc.driver.OracleDriver");
     System.out.println ("driver etablie");
     }
     catch(Exception e)
     {
     System.out.println ("erreur:Driver int" +
     "rouvable");
     }
     
     
     //connexion à la base
     try
     
     {
     String URL = "jdbc:oracle:thin:@localhost:1521:nounou";
     //if ((id.getText()=="system")&&(mdp.getText()=="manager"))
     
     { con =DriverManager.getConnection(URL,"system","manager");
     System.out.println ("connexion base nounou etablie");
     }
     
     }
     catch(Exception e)
     
     {
     
     System.out.println ("erreur: base introuvable");
     
     }}
     ///////
     JTable select(String requete){
    	 Vector tabLignes=new Vector(), nomCols=new Vector();
    	 int i;
     
    	 try {
    	 Statement req = con.createStatement();
    	//	 Définir, envoyer la requête et récupérer le résultat
    	    res = req.executeQuery(requete);
    	    //	 Extraire noms des colonnes; les placer dans Vector nomCols
    	    ResultSetMetaData md = res.getMetaData();
    	    nomCols = new Vector();
    	    for ( i=1 ; i<= md.getColumnCount (); i++)
    	         {nomCols.add( md.getColumnLabel(i));
    	    System.out.println(md.getColumnLabel(i));}
    //	 Mémoriser le résultat dans la JTable
     
    	   while(res.next())  {
    //	 Placer les 7 valeurs dans Vector ligne
    	    Vector ligne=new Vector();
    	    for (i=1; i<=7; i++)  {
    		    String ch=res.getString(i);
     
    		    ligne.add(ch);
    	    }
    	    tabLignes.add(ligne);
    	}
    //	 Fermer la connexion
    	con.close();
    	 } catch (SQLException e) {
    	  System.out.println("Anomalie lors de l'execution de la requête");
    	  }
    	  return new JTable(tabLignes,nomCols);
     }
    Le res.next() retourne toujours false ce qui fait que je n'ai pas de résultat affiché pourtant la requête retourne normalement plusieurs lignes.
    J'arrive pas à voir ce qu'il y a de travers dans ce bout de code.
    Aidez moi svp!!

  2. #2
    Membre régulier

    Inscrit en
    Octobre 2006
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 69
    Points : 110
    Points
    110
    Par défaut
    Salut,
    Dans ta fonction "JTable select(String requete)" je ne vois pas où tu établis la connexion à la base pourtant tu la fermes à la fin. Je crois que c'est de là que vient ton problème
    Essais ce code
    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
    public JTable  select(String requete) {
        int i;
        Vector tabLignes=new Vector(), nomCols=new Vector();
        try {
            Class.forName("oracle.jdbc.driver.OracleDriver");
            String url = "jdbc:oracle:thin:@localhost:1521:nounou";
            Connection connection = DriverManager.getConnection(url,"system","manage");
     
            Statement statement = connection.createStatement();
            ResultSet res = statement.executeQuery(requete);
     
            ResultSetMetaData md = res.getMetaData();
            nomCols = new Vector();
                for ( i=1 ; i<= md.getColumnCount (); i++) {
                    nomCols.add(md.getColumnLabel(i));
                    System.out.println(md.getColumnLabel(i));
                        while(res.next())  {
                            Vector ligne=new Vector();
                            for (i=1; i<=7; i++)  {
                                String ch=res.getString(i);
                                ligne.add(ch);
                            }
                            tabLignes.add(ligne);
                        }
                }
            connection.close();
        }
        catch(ClassNotFoundException e) {
           System.err.println("Erreur lors du chargement du pilote :");
            e.printStackTrace();
        }
        catch(SQLException sqle) {
           System.err.println("Erreur de syntaxe SQL");
              do {
                  System.err.println("SQLState : "+sqle.getSQLState());
                  System.err.println("Description : "+sqle.getMessage());
                  System.err.println("Code erreur : "+sqle.getErrorCode());
                  sqle = sqle.getNextException();
            }while(sqle != null);
       }
        return new JTable(tabLignes,nomCols);
    }
    ça devrait aller sinon recontactes moi

  3. #3
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    Il est clair qu'il faudrait appeler ta méthode connexionDB() au début de ton traitement select(...)
    Ceci dit, tu sembles dire que le problème vient du res.next(). Si tu arrives jusqu'à là, la connexion n'est pas null (c'est déjà ça), par contre, elle a peut-être été fermée... ou alors la requête n'est pas bonne...
    Peux-tu nous montrer la requête ?

    A+

  4. #4
    Membre à l'essai
    Inscrit en
    Juillet 2007
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 26
    Points : 17
    Points
    17
    Par défaut
    En faite j'arrive à me connecter à la base et aussi réccupérer les noms des champs sans problème(avec ce même code).
    Le problème qui se pose maintenant c'est que ma requête ne retourne de résultat que si le "insert" est fait à partir du code java mais s' il figure déja dans la base(insertion classique avec directement le sql) je n'ai pas d'affichage, il pointe sur null.

  5. #5
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    Euh... j'suis pas certain d'avoir compris là...
    Tu veux dire que tu ne vois pas des lignes qui auraient été ajoutées par un outil de la base ?

  6. #6
    in
    in est déconnecté
    Membre expérimenté Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Points : 1 718
    Points
    1 718
    Par défaut
    euh une histoire de commit peut être ?

  7. #7
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par in
    euh une histoire de commit peut être ?
    Oui, je pensais à la même chose, mais je ne suis pas sûr d'avoir tout compris

Discussions similaires

  1. Requête ne retourne rien
    Par chamamo dans le forum SQL
    Réponses: 12
    Dernier message: 11/07/2012, 16h03
  2. Requête select into qui ne retourne rien
    Par madevilts dans le forum PL/SQL
    Réponses: 6
    Dernier message: 15/10/2008, 16h25
  3. problème lorsque ma requête retourne rien
    Par gibea00 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 09/08/2008, 16h54
  4. Comment savoir quand une requête ne retourne rien
    Par veriecherie dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 29/07/2008, 14h16
  5. [MySQL] Requête qui ne retourne rien
    Par baleiney dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 28/06/2006, 18h29

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