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 :

[JDBC]ResultSelt null


Sujet :

JDBC Java

  1. #1
    Nouveau membre du Club
    Inscrit en
    Septembre 2004
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 32
    Points : 26
    Points
    26
    Par défaut [JDBC]ResultSelt null
    Bonjour

    J'ai voulu récuperer les données d'un ResultSet d'une requete de consutlation.

    Mais, ce ResultSet prend la valeur null meme apres la requete!!

    Voici 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
    private static PieDataset createDataset() {
    		 ResultSet rsMoyenne = null;
    		try {
     
    			Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
     
    			Connection conn = DriverManager.getConnection(
    					"jdbc:microsoft:sqlserver://localhost:1433", "abc", "");
     
    			Statement st = conn.createStatement();
     
    			String strQuery = " SELECT  COUNT(DestHost) * 100 /(SELECT  COUNT(DestHost) FROM  WebProxyLog  WHERE (ClientIP = '195.114.57.11')) AS pourcentage, DestHost FROM         WebProxyLog WHERE     (ClientIP = '195.114.57.11')GROUP BY DestHost ORDER BY pourcentage DESC";
    			System.out.println(strQuery);
     
    			rsMoyenne = st.executeQuery(strQuery);			
     
    		if (rsMoyenne == null)System.out.println("Resultat null") ;
     
     
    		} catch (ClassNotFoundException e) {
    			System.out.println("pas de resultat !");
    		} catch (SQLException e) {
    			System.out.println("pas de resultat 2 !");
    		}
    C'est la partie; " rsMoyenne = st.executeQuery(strQuery);" qui me pose le probleme !!

    Avez vous une solution ?


    [Modéré par Didier] : ajout de tag dans le titre - Les règles du forum Java

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    304
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 304
    Points : 348
    Points
    348
    Par défaut
    Salut,

    essaies plutôt ceci:

    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
     
    private static PieDataset createDataset() { 
           ResultSet rsMoyenne; 
           try { 
     
             Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); 
     
             Connection conn = DriverManager.getConnection( 
                   "jdbc:microsoft:sqlserver://localhost:1433", "abc", ""); 
     
             String strQuery = " SELECT  COUNT(DestHost) * 100 /(SELECT  COUNT(DestHost) FROM  WebProxyLog  WHERE (ClientIP = '195.114.57.11')) AS pourcentage, DestHost FROM         WebProxyLog WHERE     (ClientIP = '195.114.57.11')GROUP BY DestHost ORDER BY pourcentage DESC"; 
             System.out.println(strQuery); 
     
              PreparedStatement psMoyenne = conn.prepareStatement(strQuery);          
             rsMoyenne = psMoyenne.executeQuery();          
     
             if (rsMoyenne == null)System.out.println("Resultat null") ; 
     
     
          } catch (ClassNotFoundException e) { 
             System.out.println("pas de resultat !"); 
          } catch (SQLException e) { 
             System.out.println("pas de resultat 2 !"); 
          }

  3. #3
    Nouveau membre du Club
    Inscrit en
    Septembre 2004
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 32
    Points : 26
    Points
    26
    Par défaut
    Non
    ça n'a pas marché !

    Qd,je n'initialise pas le ResultSet rsMoyenne à null,ça ne marche pas !!

    c'est à dire,c'est comme si la variable n'a pas été initialisée!!

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    304
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 304
    Points : 348
    Points
    348
    Par défaut
    et comme ça?
    y'a pas grand changement, mais je m'y retrouve mieux en fait
    sinon c'est quoi l'erreur exact?

    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
     
    private static PieDataset createDataset() 
    { 
           ResultSet rsMoyenne; 
     
           try 
          {         
             Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); 
     
             Connection conn = DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433", "abc", ""); 
     
              PreparedStatement psMoyenne = conn.prepareStatement(" SELECT  COUNT(DestHost) * 100 /(SELECT  COUNT(DestHost) FROM  WebProxyLog  WHERE (ClientIP = '195.114.57.11')) AS pourcentage, DestHost FROM         WebProxyLog WHERE     (ClientIP = '195.114.57.11')GROUP BY DestHost ORDER BY pourcentage DESC;");          
             rsMoyenne = psMoyenne.executeQuery();          
     
             if (rsMoyenne == null)
             {
                   System.out.println("Resultat null") ; 
             }
     
          } 
           catch (ClassNotFoundException e) 
         { 
             System.out.println("pas de resultat !"); 
          } 
           catch (SQLException e) 
         { 
             System.out.println("pas de resultat 2 !"); 
          }

  5. #5
    Membre régulier
    Inscrit en
    Juin 2004
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 65
    Points : 74
    Points
    74
    Par défaut
    moi surtt ce qui m'embete c'est qd je lis la javadoc :
    executeQuery

    public ResultSet executeQuery()
    throws SQLException

    Executes the SQL query in this PreparedStatement object and returns the ResultSet object generated by the query.

    Returns:
    a ResultSet object that contains the data produced by the query; never null
    Throws:
    SQLException - if a database access error occurs or the SQL statement does not return a ResultSet object
    executeQuery ne renvoie jamais null ....

  6. #6
    Nouveau membre du Club
    Inscrit en
    Septembre 2004
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 32
    Points : 26
    Points
    26
    Par défaut
    voici toute la procedure:
    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
    private static PieDataset createDataset() 
    	{ 
    	       ResultSet rsMoyenne=null; 
     
    	       try 
    	      {          
    	         Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); 
     
    	         Connection conn = DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433", "abc", ""); 
     
    	          PreparedStatement psMoyenne = conn.prepareStatement(" SELECT  COUNT(DestHost) * 100 /(SELECT  COUNT(DestHost) FROM  WebProxyLog  WHERE (ClientIP = '195.114.57.11')) AS pourcentage, DestHost FROM         WebProxyLog WHERE     (ClientIP = '195.114.57.11')GROUP BY DestHost ORDER BY pourcentage DESC;");          
    	         rsMoyenne = psMoyenne.executeQuery();          
     
    	         if (rsMoyenne == null) 
    	         { 
    	               System.out.println("Resultat null") ; 
    	         } 
     
    	      } 
    	       catch (ClassNotFoundException e) 
    	     { 
    	         System.out.println("pas de resultat !"); 
    	      } 
    	       catch (SQLException e) 
    	     { 
    	         System.out.println("pas de resultat 2 !"); 
    	      }
     
    		DefaultPieDataset defaultpiedataset = new DefaultPieDataset();
    		try {
     
    			while (rsMoyenne.next()) {
    				if (rsMoyenne.getInt(1) != 0)
    					System.out.println(rsMoyenne.getInt(1));
    				defaultpiedataset.setValue(rsMoyenne.getString(2), new Double(
    						rsMoyenne.getInt(1)));
    			}
    			rsMoyenne.close();
    		} catch (Exception e) {
    			System.out.println("PBBBB "+e.toString());
    		}
    		return defaultpiedataset;
    			}
    Le problem c'est l'initialisation de la variable rsMoyenne au debut!

    1.Si je fais :
    private static PieDataset createDataset()
    {
    ResultSet rsMoyenne=null;
    tout est bon sauf que la variable rsMoyenne reste=null!!

    2.Si je fais :
    private static PieDataset createDataset()
    {
    ResultSet rsMoyenne;//non initialisée a null

    C'est la partie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    while (rsMoyenne.next()) {
    				if (rsMoyenne.getInt(1) != 0)
    					System.out.println(rsMoyenne.getInt(1));
    				defaultpiedataset.setValue(rsMoyenne.getString(2), new Double(
    						rsMoyenne.getInt(1)));
    			}
    			rsMoyenne.close();
    		} catch (Exception e) {
    			System.out.println("PBBBB "+e.toString());
    qui se comporte comme si la variable rsMoyenne n'a pas été définie !!

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    304
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 304
    Points : 348
    Points
    348
    Par défaut
    effectivement c'est embêtant
    Es-tu sûr que ta connexion à ta base de données fonctionne?

  8. #8
    Nouveau membre du Club
    Inscrit en
    Septembre 2004
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 32
    Points : 26
    Points
    26
    Par défaut
    OUI !

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    304
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 304
    Points : 348
    Points
    348
    Par défaut
    Normallement tu n'as pas besoin d'initialiser un ResultSet en début de code, la déclaration
    devrait suffire.

    Pour tester, si tu fais juste :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    private static ResultSet createDataset() 
       { 
                ResultSet rsMoyenne=null; 
     
                Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); 
     
                Connection conn = DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433", "abc", ""); 
     
                 PreparedStatement psMoyenne = conn.prepareStatement(" SELECT  COUNT(DestHost) * 100 /(SELECT  COUNT(DestHost) FROM  WebProxyLog  WHERE (ClientIP = '195.114.57.11')) AS pourcentage, DestHost FROM         WebProxyLog WHERE     (ClientIP = '195.114.57.11')GROUP BY DestHost ORDER BY pourcentage DESC;");          
                rsMoyenne = psMoyenne.executeQuery();    
     
                return rsMoyenne ;

    dis moi ce que ça te renvoie.

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    304
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 304
    Points : 348
    Points
    348
    Par défaut
    euh ... petite faute d'inattention : remplaces
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     ResultSet rsMoyenne = null;
    par

  11. #11
    Nouveau membre du Club
    Inscrit en
    Septembre 2004
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 32
    Points : 26
    Points
    26
    Par défaut
    ça ne marche toujours pas !

    c'est en fait rsMoyenne = psMoyenne.executeQuery(); qui ne s'execute pas !!

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    304
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 304
    Points : 348
    Points
    348
    Par défaut
    J'ai vraiment un doute quant à ta connexion à ta base de données

  13. #13
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    304
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 304
    Points : 348
    Points
    348
    Par défaut
    essaies ça :

    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
     
    private static String createDataset() 
       { 
                ResultSet rsMoyenne;
                String test = ""; 
     
                Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); 
     
                Connection conn = DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433", "abc", ""); 
     
                 if(conn!=null)
                 {
                        test = "ok";
                        PreparedStatement psMoyenne = conn.prepareStatement(" SELECT  COUNT(DestHost) * 100 /(SELECT  COUNT(DestHost) FROM  WebProxyLog  WHERE (ClientIP = '195.114.57.11')) AS pourcentage, DestHost FROM         WebProxyLog WHERE     (ClientIP = '195.114.57.11')GROUP BY DestHost ORDER BY pourcentage DESC;");          
                        rsMoyenne = psMoyenne.executeQuery();    
                        conn.close();
                  }  
     
                  else
                  {
                        test = "pas de connexion à la bdd";
                  }
                  return test;
    }

  14. #14
    Membre régulier
    Inscrit en
    Juin 2004
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 65
    Points : 74
    Points
    74
    Par défaut
    vu ce que j'ai mis concernant la javadoc ci dessus, je pense comme Gaëlle que tu n'es pas connecté à la bdd.

  15. #15
    Nouveau membre du Club
    Inscrit en
    Septembre 2004
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 32
    Points : 26
    Points
    26
    Par défaut
    Je vous remercie

    Je vais encore verifier ...

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 10/09/2006, 11h58
  2. Réponses: 2
    Dernier message: 27/04/2005, 17h56
  3. [JDBC]Un new qui renvoie null...
    Par Ditch dans le forum JDBC
    Réponses: 4
    Dernier message: 03/01/2005, 13h14
  4. Réponses: 4
    Dernier message: 07/10/2004, 15h41
  5. [JDBC] retour de requete sql avec valeur NULL
    Par maxxou dans le forum JDBC
    Réponses: 3
    Dernier message: 13/09/2004, 14h40

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