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

Langage Java Discussion :

Pb avec une méthode de classe


Sujet :

Langage Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Août 2006
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 74
    Points : 106
    Points
    106
    Par défaut Pb avec une méthode de classe
    Bonjour,

    Je suis débutant en JAVA et j'ai un soucis avec une méthode de classe qui doit executer une requete et renvoyer le RS.

    ECLIPSE me met This method must return a result of type ResultSet :-(

    voici le code pourant ca me parait bon :
    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
    	public ResultSet requeteSQL(String srequete){ //Requête SQL et renvois du RS
     
    		String query;
    		query=srequete;		
    		ResultSet resultQuery;
     
    		try {
    			Statement stmt = con.createStatement();
    			resultQuery = stmt.executeQuery(query);
     
    			return resultQuery;
    		}
    		catch (SQLException ex) {
     
    			System.out.println("[ERREUR] Requete SQL -> " + query);
    		}		
     
    	}
    Merci !

  2. #2
    Membre expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Points : 3 080
    Points
    3 080
    Par défaut
    1- Ça n'est pas une méthode de classe (qui serait static), c'est une méthode d'instance ici que tu utilises.
    2- Si stmt.executeQuery(query) lève une SQLException, tu vas dans le catch, et tu ne passes jamais par le return...

    Je te conseille dans ton cas de ne pas faire de try/catch, mais simplement throws SQLException dans la déclaration de ta méthode...

  3. #3
    Membre régulier Avatar de anas.eh
    Profil pro
    Inscrit en
    Février 2007
    Messages
    181
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Maroc

    Informations forums :
    Inscription : Février 2007
    Messages : 181
    Points : 119
    Points
    119
    Par défaut
    Essaie de faire sortir le : return resultQuery; du try, je pense que la méthode doit obligatoirement retourner quelque chose, je suis pas sûr.

  4. #4
    Rédacteur
    Avatar de bulbo
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2004
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Février 2004
    Messages : 1 259
    Points : 1 937
    Points
    1 937
    Par défaut
    Citation Envoyé par anas.eh Voir le message
    Essaie de faire sortir le : return resultQuery; du try, je pense que la méthode doit obligatoirement retourner quelque chose, je suis pas sûr.
    C'est exactement ca, dans le catch il n'y a pas de return .. une methode doit soit envoyer une exception soit retourner un resultat si le type de retour n'est pas void.

    soit tu mets un "return null" a la fin de ta methode (apres le catch) ce qui est un peux laid soit tu fais ton return a l'exterieur du catch .. attention comme tu fais un catch il est possible que tu retournes null en cas de probleme.

    Bulbo

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Août 2006
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 74
    Points : 106
    Points
    106
    Par défaut Merci
    ReBonjour,

    J'avais essayé de mettre le return après le catch mais dans ce cas il me mettait une erreur.

    J'ai mis un return null; dans le catch et ca marche.

    Le throws SQLException sans le try et catch marche aussi mais je ne sais pas dans ce cas comment est géré l'erreur et si ca sera générateur d'écran bleu .

    Merci à vous tous.

  6. #6
    Rédacteur
    Avatar de bulbo
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2004
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Février 2004
    Messages : 1 259
    Points : 1 937
    Points
    1 937
    Par défaut
    Si tu veux mettre le return apres le catch il faut dans ce cas declarer ta variable resultQuery avant le try, sinon elle ne sera pas visible a l'exterieur du bloc try.

    Si tu declares un throws a ta methode tu ne risques pas un ecran bleu (java ne fait pas d'ecran bleu, seulement windows ) il faudra simplement catcher cette excpetion au niveau applicatif.. c'est a dire la ou le programme sait ce qu'il doit faire en cas d'echec de la requete. Genre afficher un message a l'utilisateur, arreter l'application, reessayer la requete sur une autre base...

    Bulbo

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

Discussions similaires

  1. Problème avec une méthode d'une classe
    Par ChPr dans le forum Android
    Réponses: 5
    Dernier message: 16/03/2013, 11h52
  2. Réponses: 0
    Dernier message: 20/05/2012, 20h58
  3. class: modifier une var d'instance avec une méthode
    Par jean-pat dans le forum Général Python
    Réponses: 5
    Dernier message: 29/09/2011, 15h25
  4. Réponses: 4
    Dernier message: 29/01/2006, 17h54
  5. [C#] Ajout d'une méthode à la classe DropDownList
    Par Scorff dans le forum ASP.NET
    Réponses: 2
    Dernier message: 30/08/2005, 14h23

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