Java web connection à JDBC

Résolu/Fermé
sihemhcine Messages postés 9 Date d'inscription dimanche 25 octobre 2015 Statut Membre Dernière intervention 17 janvier 2016 - 6 déc. 2015 à 15:49
sihemhcine Messages postés 9 Date d'inscription dimanche 25 octobre 2015 Statut Membre Dernière intervention 17 janvier 2016 - 7 déc. 2015 à 23:58
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
A voir également:

1 réponse

KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
6 déc. 2015 à 17:17
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;
    }
}
0
sihemhcine Messages postés 9 Date d'inscription dimanche 25 octobre 2015 Statut Membre Dernière intervention 17 janvier 2016
7 déc. 2015 à 00:17
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 ?
0
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
7 déc. 2015 à 17:55
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
0
sihemhcine Messages postés 9 Date d'inscription dimanche 25 octobre 2015 Statut Membre Dernière intervention 17 janvier 2016
7 déc. 2015 à 23:58
C'est effectivement :) mercii mercii Monsieur , ça marche bien :)))
0