Que signifie “if (rs.next ())”?

Je suis actuellement à l'obtention de l'erreur,

java.sql.SQLException: Method 'executeQuery(String)' not allowed on prepared statement.

parce que je suis en utilisant

PreparedStatement stmt = conn.prepareStatement(sql);

et a également eu

ResultSet rs = stmt.executeQuery(sql);

dans mon code.

J'ai maintenant besoin de retirer le jeu de résultats en ligne, mais qui me laisse à d'avoir à traiter avec le code suivant:

if (rs.next()) {
    messages.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("login.successful"));
    request.getSession(true).setAttribute("USERNAME", rs.getString("USERNAME"));
    request.getSession(true).setAttribute("BALANCE", rs.getString("BALANCE"));
    request.setAttribute("msg", "Logged in successfully");

Je ne suis pas sûr que je comprends parfaitement ce que

 if (rs.next())

. Quelqu'un pourrait-il expliquer ce code pour moi? Si j'ai une meilleure compréhension de ce que je crois que je vais avoir une meilleure idée sur la manière de traiter à l'aide de la PreparedStatement résultats avec la logique utilisée pour rs. Aussi toute aide pour faire face à l'évolution de cette logique serait grandement apprécié.

OriginalL'auteur Turk | 2011-11-20