Java web connection à JDBC

Résolu
sihemhcine Messages postés 12 Statut Membre -  
sihemhcine Messages postés 12 Statut Membre -
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

  1. KX Messages postés 19031 Statut Modérateur 3 020
     
    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
    1. sihemhcine Messages postés 12 Statut Membre
       
      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
    2. KX Messages postés 19031 Statut Modérateur 3 020
       
      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
    3. sihemhcine Messages postés 12 Statut Membre
       
      C'est effectivement :) mercii mercii Monsieur , ça marche bien :)))
      0