Java web connection à JDBC [Résolu/Fermé]

Signaler
Messages postés
9
Date d'inscription
dimanche 25 octobre 2015
Statut
Membre
Dernière intervention
17 janvier 2016
-
Messages postés
9
Date d'inscription
dimanche 25 octobre 2015
Statut
Membre
Dernière intervention
17 janvier 2016
-
Bonjour ,
j'ai crée une base de données JDBC avec Netbeans8 . j'ai crée un web service pour m'afficher le nombre des enregistrements de la table crée .J'ai procédé comme suit :

   @WebMethod(operationName = "Return_nbr")
public int Return_nbr( )
{
Statement _st ; ResultSet resultat; int nb= 0 ;
try
{ _con =db.getConnection();
_st = _con.createStatement();

resultat = (ResultSet) _st.executeQuery("select * from USER1.ETUDIANT ;") ;

while( resultat.next())
{ nb++ ; }

}
catch(Exception ex )
{ System.out.println(ex.getMessage());}

return nb ;

}


Mais il m'affiche toujours 0
Pourriez m'aider SVP

1 réponse

Messages postés
16040
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 septembre 2020
2 679
Bonjour,

Est-ce qu'il t'affiche une erreur avec System.out.println(ex.getMessage()) ?
Remarque : un trace complète ex.printStackTrace serait plus parlante.

De plus pourquoi récupérer tous les éléments de la table pour juste les compter, il y a une optimisation à faire côté SQL.

Enfin, il y a des conventions de nommage en Java, ce serait bien de les respecter, elles ne sont pas là que pour faire jolies.

@WebMethod(operationName = "nombreEtudiants")
public int nombreEtudiants() {
    try (
        Connection con = db.getConnection();
        Statement st = con.createStatement();
    ) {
        ResultSet rs = st.executeQuery("select count(*) from ETUDIANT");
        if (rs.next()) {
            return rs.get(1);
        }
        else {
            return 0;
        }
    } catch (Exception e) {
        e.printStackTrace();
        return -1;
    }
}
Messages postés
9
Date d'inscription
dimanche 25 octobre 2015
Statut
Membre
Dernière intervention
17 janvier 2016

Merci bien pour vos recommandations .
J'ai rectifié mon code , mais il me demande de forcer le type de l'instruction contenant la requette comme suit :
 ResultSet  rs =(ResultSet) st.executeQuery("select count(*) from ETUDIANT") ;
       


Mais malheureusement le web service retourne -1 . Est ce que le problème est au niveau ma base ?
Messages postés
16040
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 septembre 2020
2 679
S'il retourne -1 c'est que tu as une exception qui s'est affichée. Qu'est ce que c'est ?
À mon avis il n'arrive pas à caster ton ResultSet, tu as du te tromper dans les import
Messages postés
9
Date d'inscription
dimanche 25 octobre 2015
Statut
Membre
Dernière intervention
17 janvier 2016

C'est effectivement :) mercii mercii Monsieur , ça marche bien :)))