2014-11-03 8 views
0

У меня есть сценарий, как показано ниже:Извлечение столбца из DataTable

Scenario: do something interesting 
    Given the following users 
     | first_name | last_name | address | 
     | John  | Doe  | add1 | 
     | Jane  | Doe  | add2 | 

Как я могу извлечь список элементов, в качестве примера: от first_name колонны.

Я пытался использовать cucumber.api.DataTable, но выглядит так, как будто он используется для других целей.

Я могу извлечь только строки, а затем управлять им, как я хочу.

+0

Вам нужны строки или только столбцы? если вам нужны только столбцы, тогда вы должны повернуть свой стол. Прямой доступ к столбцам отсутствует – Dude

ответ

0

Я предполагаю, что вам просто нужен Список, но поскольку вы используете вызовы raw jdbc, вам все равно придется пересекать ResultSet. вам нужно будет обработать ваш запрос, чтобы просто вернуть один столбец, а затем извлечь каждую отдельную строку в объект списка результатов.

Теперь, если вы используете JPA, вы можете получить результат в список, создав свой запрос, чтобы просто вернуть один столбец, и JPA автоматически разворачивает его в список (или список для других типов, таких как Date или Integer).

3

Самый читаемый вариант на мой взгляд, будет вполне asMaps метод, таким образом, вы не зависят от упорядочения столбцов:

@Given("^the following users$") 
public void the_following_users(DataTable table) { 
    for (Map<String, String> row : table.asMaps(String.class, String.class)) { 
     System.out.println(row.get("first_name")); 
    } 
} 

Извлечение один столбец DataTable не является частью его апи, так вам придется реализовать это в java.

Смежные вопросы