@Romario21

JAVA JDBC не удается получить одну запись из таблицы?

Всем привет, если запрос возвращает несколько записей то все нормально, однако если возвращается одна запись, то получить ее не получается. Подскажите в чем проблема?

Statement stmt = dbConnent.getCon().createStatement();
                
                //Возвращает одну запись (CA3896D8-46C9-49EA-A94B-7E5B3CE8721C,belov_aa)
                String sql = "SELECT TOP(1) Id AS UID,Name AS NAME FROM SysAdminUnit WHERE Name='belov_aa'";
                
                System.out.println(sql);
                ResultSet rs = stmt.executeQuery(sql);
                while (rs.next()) {
                    String name = rs.getString("NAME");
                    String uid = rs.getString("UID");
                    System.out.println(uid+":"+name);
                }

Если убрать while то получается сom.microsoft.sqlserver.jdbc.SQLServerException: The result set has no current row.,
  • Вопрос задан
  • 221 просмотр
Пригласить эксперта
Ответы на вопрос 3
netrox
@netrox
Попробуй:
if (rs.next()) 
{
           String name = rs.getString("NAME");
           String uid = rs.getString("UID");
           System.out.println(uid+":"+name);
}
Ответ написан
Комментировать
@Neonoviiwolf
Flutter developer
Я в таких случаях пишу примерно так
if (rs.next()) 
{
      do{
................................
      } while (rs.next());
}

так и цикл есть и не надо лепить отдельно для выдачи одной строки
Ответ написан
@MaxLich
java developer
Если Вы действительно пытаетесь без вызова метода next() получить результат, то у Вас ничего не получится. Внутренний указатель ResultSet вначале стоит перед первой строкой. Так что в любом случает next() нужно вызывать.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы