Partage
  • Partager sur Facebook
  • Partager sur Twitter

JDBC

Une requête ne me renvoie rien

    29 mai 2009 à 11:45:49

    Voilà alors j'ai un gros soucis là, j'exécute une première requête sur dans ma base de donnée, plus tard lorsque je ré exécute une autre requête, elle ne me revoie aucun résulat hors que en mode commande elle marche la requête.
    Voici celle qui marche dans le programme :
    public static boolean isPlayerInDB (String userName, String password) {
    		String request = "SELECT PSEUDO, PASSWORD FROM PLAYERS WHERE PSEUDO='"+userName+"' AND PASSWORD='"+password+"';";
    		ResultSet result; 
    		int nbResultat = 0;
    		try {
    			Statement statement = con.createStatement();
    			result = statement.executeQuery(request);
    			
    			while (result.next()) {				
    				nbResultat++;
    			}			
    			result.close ();
    			statement.close ();
    		} catch (SQLException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();			
    		}		
    		return ((nbResultat == 1) ? true : false);			
    	}
    


    Et voici celle qui ne marche pas :
    public static Player searchPlayer (String userName) {
    		
    		String request = "SELECT * FROM PLAYERS WHERE PSEUDO='"+userName+"';";
    		
    		ResultSet result; 		
    		Player player = null;
    		try {
    			Statement statement = con.createStatement();
    			result = statement.executeQuery(request);
    			
    			player = new Player (result.getString(1), result.getString(2));	
    			result.close ();
    			statement.close ();
    		} catch (SQLException e) {
    			e.printStackTrace();
    		}
    		return player;
    	}
    

    Elle me donne une belle exception, pourtant en mode console elle marche, et je suis sûr de fournir le bon userName, j'ai vérifier avec un System.out.println mais la requête ne me renvoie rien!!
    Pourquoi ?
    Merci d'avance.
    • Partager sur Facebook
    • Partager sur Twitter
      29 mai 2009 à 12:04:49

      Dans la 2eme requete tu as oublié de faire un result.next() avant de faire
      player = new Player (result.getString(1), result.getString(2));
      
      • Partager sur Facebook
      • Partager sur Twitter
      J'ai tous les badges d'OpenClassrooms.
      Anonyme
        29 mai 2009 à 12:08:17

        n'oublie pas de mettre tes .close() dans un finally (avec un test != null évidemment).
        • Partager sur Facebook
        • Partager sur Twitter
          29 mai 2009 à 12:09:32

          Bah en mettant le while(result.next ()) avant je n'ai rien, comme si la requête me renvoie un tableau vide.

          Pourtant cisboy à fait comme ça :
          while (result.next ())
                 System.out.println(result.getString(1));
          

          Mais moi il ne m'affiche rien!
          • Partager sur Facebook
          • Partager sur Twitter
            29 mai 2009 à 12:23:28

            Et c'est quoi l'exception que tu as ?
            • Partager sur Facebook
            • Partager sur Twitter
            J'ai tous les badges d'OpenClassrooms.
              29 mai 2009 à 12:37:06

              Ha bah on dirais que mon objet Player s'instancie quand même, j'ai mis un system.out.println dans le constructeur, donc ce serait plutôt l'affichage qui foire...
              Ha bah oui c'était l'affichage j'avais oublier de rajouter un truc.
              Et en effet si on mets pas le while(result.next()) ça plante.

              Problème résolus, oulala la grosse gaffe j'ai oublier que en fait j'ai oublier de mettre le eprso à la même place que la caméra du coup il était en dessous pour ça qu'on ne le voiyait plus...
              Résolus. :)
              • Partager sur Facebook
              • Partager sur Twitter

              JDBC

              × 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