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 :

pb avec le ExecuteQuery(), il ne renvoie rien ?


Sujet :

JDBC Java

  1. #1
    Membre habitué
    Inscrit en
    Janvier 2005
    Messages
    460
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Janvier 2005
    Messages : 460
    Points : 145
    Points
    145
    Par défaut pb avec le ExecuteQuery(), il ne renvoie rien ?
    Bonjour à tous,
    j'ai 1 pb avec execute Query, la requête est pourtant bonne mais impossible d'afficher quoi que ce soit de la réponse.

    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
    import java.sql.*;
    import java.io.*;
    import java.util.*;
    public class application {
     
    	/**
             * @param args
             */
    	public static void main(String[] args) throws SQLException {
    		// TODO Auto-generated method stub
     
     
     
     
    		  Connection conn=Bdd.getConnexion();
    		  Statement  cmde=conn.createStatement();
    		  Scanner    s=new Scanner(System.in);
     
    		  String     nosal;
    		  System.out.print("Numéro de Salarie: \n "); // 109 par exemple
    		  nosal=s.next();
     
     
    //nosal =1 ; ca fonctionne sans soucis
     
     
    			  ResultSet  rs=cmde.executeQuery("Select   a.numsal,  a.nomsal, b.libfonct, c.codeproj,c.descript,c.datedebp,c.datefinp,  d.nomcli, e.dateaff" + 
    " FROM salarie a, fonction b, projet c, client d, affectation e" +
    					 "  WHERE a.codefonct=b.codefonct" +
    					   " AND c.codeproj=e.codeproj" +
    					   " AND a.numsal=e.numsal " +
    					  "  AND d.numcli=c.numcli " +
    					  "  AND a.numsal=" + nosal + " " );
     
     
     
     
    			  while ( rs.next() )
    			  {
    				  System.out.println("toto 2 yeah");
    				  System.out.println(rs.getInt(1)+" "+rs.getString(2)); // ici on récupère numsal et nomsal
    			  }
    Le pb vient du while rs.next(), en fait ca ne rentre jamais dans la boucle mais je ne comprends pas pourquoi !

    merci pour votre aide

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    502
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 502
    Points : 227
    Points
    227
    Par défaut
    bonjour,

    je crois qu'il te manque pas mal de choses :

    le driver pour te connecter a la base de donnees.

    L'url ou se trouve ta base de données.

    pour executer ta requete il faut la methode executeUpdate().

    il faut que tu ferme les connexions de statement, Resulset et connexion.

    voici un exemple de mon 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
    try{
    				Class.forName("com.mysql.jdbc.Driver");
    				System.out.println("JDBC Load ok");
    			}
    			catch (ClassNotFoundException e1)
    			{
    				System.out.println (e1);
    			}
     
     
    			int cod = Integer.parseInt(Text_code_postal.getText());
    			System.out.println(idclient);
     
    			 try{
    				 java.sql.Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/Ecommerce","root","");
    				 System.out.println("bonne connexion");
     
                     String sqle="INSERT INTO Entreprise (identreprise,idclient,nomentreprise,activite,adresseentreprise,villeentreprise,codepostaleentreprise,paysentreprise)"+
    				 "values("+"NULL,"+idclient+",'"+Text_nom_entreprise.getText()+"','"+Text_activite.getText()+"','"+Text_adresse.getText()+"','"+
    				 Text_ville.getText()+"',"+cod+",'"+Text_pays.getText()+"')";
     
    				 PreparedStatement pr=conn.prepareStatement(sqle);
    				 pr.executeUpdate(sqle);
     
     
    				 pr.close();
    				 conn.close();
    				 System.out.println("enrengistrement entreprise reussi !!");
     
     
    		}catch (SQLException e2)
    		{
    			System.out.println(e2);
    		}	
     
    			return;
     
    		}

  3. #3
    Membre habitué
    Inscrit en
    Janvier 2005
    Messages
    460
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Janvier 2005
    Messages : 460
    Points : 145
    Points
    145
    Par défaut
    J'ai une autre classe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    import java.sql.*;
     
    class Bdd {
     
    private static Connection connexion;
     
    public  static Connection getConnexion()throws SQLException {
     
       DriverManager.registerDriver(new oracle.jdbc.OracleDriver());
       connexion=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:globalb","system","test");
       System.out.println("Connexion OK\n");
       return connexion;}
     
    }
    Et la connexion à la base est OK !

  4. #4
    Membre chevronné Avatar de guigui5931
    Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2006
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 667
    Points : 2 232
    Points
    2 232
    Par défaut
    Est ce que le problème ne vient pas plutot de ta requête? Tu peut faire un affichage de la requete finale pour vérfier qu'il n'y a pas de problème.
    autant l'hiver éclate que l'hétéroclite
    le vrai geek c'est celui qui croit qu'il y a 1024 mètres dans un kilomètre

  5. #5
    Membre habitué
    Inscrit en
    Janvier 2005
    Messages
    460
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Janvier 2005
    Messages : 460
    Points : 145
    Points
    145
    Par défaut
    La requête fonctionne si je l'execute via SQL + Oracle.

  6. #6
    Membre éclairé Avatar de remika
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    806
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 806
    Points : 861
    Points
    861
    Par défaut
    Je peux pas tester, mais il faudrait pas réinitialiser cmde avant de lancer la nouvelle requête ?
    Ignorer c'est aussi croire que l'on sait.
    Merci d'essayer d'écrire correctement.
    Pas de questions techniques par MP SVP.

  7. #7
    Membre habitué
    Inscrit en
    Janvier 2005
    Messages
    460
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Janvier 2005
    Messages : 460
    Points : 145
    Points
    145
    Par défaut
    Comment puis-je réinitialiser cmd ?

    Je n'ai toujours pas trouver la solution.

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    145
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 145
    Points : 125
    Points
    125
    Par défaut
    Ta requête semble correcte mais ne renvoie pas de ligne. Tu ne rentres donc jamais dans la boucle.
    Tu peux t'en assurer en testant si tu obtiens au moins un résultat avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if (!rs.first()){
       System.out.println("resultset vide");
    }

  9. #9
    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
    as tu testé la valeur de nosal après la saisie utilisateur ?

    Tu devrais la transformer en int pour d'une part contrôler que le user ne met pas n'importe quoi et d'autre part s'assurer que la requete sera valide ...

    et affiche ta requete avant de l'executer pour vraiment voir ce qui se passe ....
    "If email had been around before the telephone was invented, people would have said, 'Hey, forget email! With this new telephone invention I can actually talk to people!"

    Besoin d'une nouvelle méthode pour développer ? -> http://www.la-rache.com/

  10. #10
    Membre habitué
    Inscrit en
    Janvier 2005
    Messages
    460
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Janvier 2005
    Messages : 460
    Points : 145
    Points
    145
    Par défaut
    J'ai essayé avec une requête très simple, ca ne passe pas le recordset ne renvoie rien, cela viendrait de la base de données Oracle, un réglage de base de données. C'est plus la dessus qu'est la solution.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Grep d'une chaine avec caractère spécial "É" "È" , ne renvoie rien.
    Par erox44 dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 05/05/2014, 09h55
  2. getElementById renvoie rien ou null avec un DatePicker
    Par ceinpap dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 17/04/2013, 20h52
  3. Réponses: 5
    Dernier message: 16/01/2013, 19h07
  4. $_SERVER["QUERY_STRING"] avec POST ne renvoie rien !
    Par belocom dans le forum Langage
    Réponses: 5
    Dernier message: 12/10/2007, 21h02

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