Набор результатов Получить все значения строк в одном столбце - PullRequest
0 голосов
/ 06 июня 2018

Сейчас я пишу тест, в котором мне нужно сравнить некоторые результаты базы данных с таблицей пользовательского интерфейса, используя Selenium в Java.У меня есть результаты пользовательского интерфейса, поступающие в формате ArrayList.Моя консоль сообщает мне, что результаты выглядят как «[27002, 55691, 58716, 95362]».Это работает нормально.

У меня есть другой класс, который выполняет JDBC-вызов в мою базу данных для получения ожидаемых результатов.Я использую метод ResultSet, чтобы получить эти значения.Мой код выглядит следующим образом: (Примечание: мои JDBC-соединения и т. Д. Обрабатываются в методе "runQuery", в который я передаю свой SQL-запрос)

public ArrayList queryForTPOSMembersByHospital() throws SQLException {

    String strQueryText = "select distinct _Member_Number and rest of query here that returns one column of results and 4 rows of data";

    ResultSet rs = runQuery(strQueryText);

    ArrayList<String> memberNos = new ArrayList<String>();

    while (rs.next()) {

        memberNos.add(rs.getString("_Member_Number"));

        return memberNos;
    }

    return null;

    }

Но когда я выводю memberNos, я получаю только одинЯ ожидаю значение [27002], а не 4.

Я думаю, мне нужно сделать что-то вроде memberNos.addВсе возможно?а не memberNos.add?Пробовал несколько вещей вокруг этого метода, но пока не получалось.

Ответы [ 3 ]

0 голосов
/ 06 июня 2018

Ваш метод должен возвращать данные типа ArrayList, чтобы удалить оператор возврата из вашего кода и вернуть memberNos, как показано ниже:

public ArrayList queryForTPOSMembersByHospital() throws SQLException {
    String strQueryText = "select distinct _Member_Number and rest of query here that returns one column of results and 4 rows of data";
    ResultSet rs = runQuery(strQueryText);
    ArrayList<String> memberNos = new ArrayList<String>();
    while (rs.next()) {
        memberNos.add(rs.getString("_Member_Number"));
    }
    return memberNos;

    }
0 голосов
/ 06 июня 2018

Попробуйте этот код:

  public ArrayList queryForTPOSMembersByHospital() throws SQLException {
    String strQueryText = "select distinct _Member_Number and rest of query here that returns one column of results and 4 rows of data";
    ResultSet rs = runQuery(strQueryText);
    ArrayList < String > memberNos = new ArrayList < String > ();
    while (rs.next()) {
     memberNos.add(rs.getString("_Member_Number"));
    }
   return memberNos;
 }

Вы возвращались из цикла while, поэтому получили только одно значение.

0 голосов
/ 06 июня 2018

Это потому, что вы возвращаетесь внутрь цикла while, ваш код должен быть

while (rs.next()) {

    memberNos.add(rs.getString("_Member_Number"));
}
return memberNos
...