2014-11-03 33 views
0

提取一列,我的情况如下图所示:从数据表

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 2015-04-14 14:31:15

回答

0

我猜你只是想要一个列表,但既然你使用原始的jdbc调用,你仍然必须遍历ResultSet。您需要制作查询以返回一列,然后将每个单项行提取到结果List对象中。

现在,如果您使用的是JPA,您可以通过构建查询来返回一列,并将JPA自动将其打包到List(或其他类型的列表,如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的一列是不是它的API的一部分,所以你将不得不在java中实现它。