Что означает «if (rs.next ())»?

В настоящее время я получаю сообщение об ошибке

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

, потому что я использую

PreparedStatement stmt = conn.prepareStatement(sql);

, а также имел

ResultSet rs = stmt.executeQuery(sql);

в моем коде.

Теперь мне нужно удалить строку ResultSet, но в результате мне придется иметь дело со следующим кодом:

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");

Я не уверен, что полностью понимаю, что делает

 if (rs.next())

. Может ли кто-нибудь объяснить мне этот код? Если я лучше понимаю это, я думаю, у меня будет лучшее представление о том, как работать с результатами PreparedStatement с логикой, используемой для rs. Также приветствуется любая помощь в изменении этой логики.

10
задан Turk 20 November 2011 в 04:25
поделиться