[java]objet resultset d'une requête SQL

Bonjour à tous!!!!

Je développe actuellement une application en java.

J'execute une requête de select toute bête et le problème, c'est que je voudrais executer une instruction dans le cas ou l'objet resultset est vide. Je ne sais pas du tout comment faire alors si l'un de vous peux m'aider SVP.

Merci beaucoup d'avance

voici la portion de mon code:

String SQLString=("SELECT rtrim(PASSWORD) AS PASSWORD, rtrim(DROIT) AS DROIT FROM "+ nom_table+" WHERE LOGIN='"+Lg+"' ");

ResultSet Rs= ListeSAL.executeQuery(SQLString);

// C'est à cet endroit que je veux exécuter l'instruction dans le cas ou le resultset est vide

while(Rs.next())
{
out.print(Rs.getString("PASSWORD"));
String MDP = Rs.getString("PASSWORD");
out.print(MDP);

if(Rs.getString("PASSWORD").equals(Pw))
{
out.print("ok");

if(Rs.getString("DROIT").equals("Utilisateur"))
{
routeURL = "menu_utilisateur.jsp";
session.setAttribute("NOM",Lg);
session.setAttribute("PWD",Pw);

// out.print(routeURL);
}

else if(Rs.getString("DROIT").equals("Responsable"))
{
routeURL = "menu_responsable.jsp";
// out.print(routeURL);
}
else if(Rs.getString("DROIT").equals("Administrateur"))
{
routeURL = "menu_administrateur.jsp";
// out.print(routeURL);
}

}
else
{
// out.print("NOK");
}
}

1 réponse

  • Votes
  • Date
  • Date décroissante
  1. String SQLString =
    	("SELECT rtrim(PASSWORD) AS PASSWORD, rtrim(DROIT) AS DROIT FROM " + nom_table + " WHERE LOGIN='" + Lg + "' ");
    
    ResultSet Rs = ListeSAL.executeQuery(SQLString);
    
    //Par défaut, on dit qu'il est vide
    boolean isEmpty = true;
    
    while (Rs.next()) {
    //	Si tu rentres une seule fois dans la boucle, le ResultSet n'est pas vide
    	isEmpty = false;
    	out.print(Rs.getString("PASSWORD"));
    	String MDP = Rs.getString("PASSWORD");
    	out.print(MDP);
    
    	if (Rs.getString("PASSWORD").equals(Pw)) {
    		out.print("ok");
    
    		if (Rs.getString("DROIT").equals("Utilisateur")) {
    			routeURL = "menu_utilisateur.jsp";
    			session.setAttribute("NOM", Lg);
    			session.setAttribute("PWD", Pw);
    
    			//	   out.print(routeURL); 
    		} else if (Rs.getString("DROIT").equals("Responsable")) {
    			routeURL = "menu_responsable.jsp";
    			//	   out.print(routeURL); 
    		} else if (Rs.getString("DROIT").equals("Administrateur")) {
    			routeURL = "menu_administrateur.jsp";
    			//	   out.print(routeURL); 
    		}
    
    	} else {
    		//	   out.print("NOK"); 
    	}
    }
    
    if(isEmpty){
    	//Insère ici tes lignes de code à exécuter si le ResultSet est vide
    }
    


    ;-)
    HackTrack
    1. merci beaucoup

      ça marche

      a+ et encore merci
    2. @jérémyBonjour,
      Monsieur Jérémie, es que vous pouvez partager le code d'authentification java?
      merci d'avance
    3. Bonjour,

      j'ai le même problème sauf que pour moi la solution que tu as donné ne fonctionne pas.
      En fait, il ne rentre jamais dans la boucle "while result.next()".
      Voici mon code:

      <%@ include file="db_connection.jsp"%>
      <%

      //Récupération de l'idconcept c'est à dire l'id du terme français
      String id_preflabel = request.getParameter("idconcept");

      out.println("<p>Etape1 : ok</p>");

      //Selection du libelle qui a l'idconcept récupéré
      //Si idconcept=0, pas de terme récupéré = champs vide

      String query = "SELECT idconcept,libelle FROM preflabel WHERE idconcept="+id_preflabel;

      out.println("<p>Etape2 : ok</p>");

      ResultSet result = state.executeQuery(query);

      out.println("<p>Etape3 : ok</p>");

      while (result.next()){

      out.println("<p>Etape4 : ok</p>");

      //Récupération dans des variables de l'idconcept et du libelle
      String libelle = result.getString("libelle");
      String idconcept = result.getString("idconcept");

      out.println("<p>Etape5 : ok</p>");

      //Affichage du formulaire
      out.println("<div class='form_saisie'>");
      out.println("<input type='hidden' name='idconcept' value='"+idconcept+"' />");
      out.println("TERME : <input type='text' name='terme_français' value='"+libelle+"' size='30' maxlength='20' />");
      out.println("</div>");
      }
      }

      connect.close();
      state.close();
      result.close();
      %>