Java 从数据表中提取列
我有如下情景:Java 从数据表中提取列,java,cucumber,integration-testing,Java,Cucumber,Integration Testing,我有如下情景: Scenario: do something interesting Given the following users | first_name | last_name | address | | John | Doe | add1 | | Jane | Doe | add2 | 如何提取元素列表,例如:fromfirst\u name列 我试图使用cucumber.a
Scenario: do something interesting
Given the following users
| first_name | last_name | address |
| John | Doe | add1 |
| Jane | Doe | add2 |
如何提取元素列表,例如:fromfirst\u name列
我试图使用cucumber.api.DataTable,但它似乎用于其他目的
我只能提取行,然后根据需要对其进行管理。我猜您只需要一个列表,但由于您使用的是原始jdbc调用,因此仍然需要遍历结果集。您需要精心设计查询,以便只返回一列,然后将每个项目行提取到结果列表对象中
现在,如果您使用JPA,您可以通过精心设计查询将结果提取到列表中,只返回一列,JPA将自动将其展开到列表中(或其他类型的列表,如Date或Integer)。我猜您只需要一个列表,但由于您使用的是原始jdbc调用,因此仍然需要遍历结果集。您需要精心设计查询,以便只返回一列,然后将每个项目行提取到结果列表对象中
现在,如果您使用JPA,您可以通过精心设计查询将结果提取到列表中,只返回一列,JPA将自动将其展开到列表中(或其他类型的列表,如Date或Integer)。我猜您只需要一个列表,但由于您使用的是原始jdbc调用,因此仍然需要遍历结果集。您需要精心设计查询,以便只返回一列,然后将每个项目行提取到结果列表对象中
现在,如果您使用JPA,您可以通过精心设计查询将结果提取到列表中,只返回一列,JPA将自动将其展开到列表中(或其他类型的列表,如Date或Integer)。我猜您只需要一个列表,但由于您使用的是原始jdbc调用,因此仍然需要遍历结果集。您需要精心设计查询,以便只返回一列,然后将每个项目行提取到结果列表对象中
现在,如果您使用JPA,您可以通过精心设计查询将结果提取到列表中,只返回一列,JPA将自动将其展开到列表中(或其他类型的列表,如Date或Integer)。我认为最可读的选项是
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"));
}
}
@给定(“^following users$”)
public使以下用户无效(数据表){
for(映射行:table.asMaps(String.class,String.class)){
System.out.println(row.get(“first_name”);
}
}
提取
数据表的单个列
不是其api的一部分,因此您必须自己在java中实现。我认为最可读的选项是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"));
}
}
@给定(“^following users$”)
public使以下用户无效(数据表){
for(映射行:table.asMaps(String.class,String.class)){
System.out.println(row.get(“first_name”);
}
}
提取
数据表的单个列
不是其api的一部分,因此您必须自己在java中实现。我认为最可读的选项是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"));
}
}
@给定(“^following users$”)
public使以下用户无效(数据表){
for(映射行:table.asMaps(String.class,String.class)){
System.out.println(row.get(“first_name”);
}
}
提取
数据表的单个列
不是其api的一部分,因此您必须自己在java中实现。我认为最可读的选项是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"));
}
}
@给定(“^following users$”)
public使以下用户无效(数据表){
for(映射行:table.asMaps(String.class,String.class)){
System.out.println(row.get(“first_name”);
}
}
提取
数据表的单个列
不是其api的一部分,因此您必须自己在java中实现。请尝试此代码,它将为您提供“first\u name”列下的值。如果有多行,则在循环中使用此代码
`@Given("^the following users$")
public void the_following_users(DataTable records)
{
for (Map<String, String> row : records.asMaps(String.class, String.class))
{
System.out.println(row.get("first_name").intern());
}
}`
`@给定(“^following users$”)
公共作废以下用户(数据表记录)
{
for(映射行:records.asMaps(String.class,String.class))
{
System.out.println(row.get(“first_name”).intern();
}
}`
请尝试此代码,它将为您提供“名字”列下的值。如果有多行,则在循环中使用此代码
`@Given("^the following users$")
public void the_following_users(DataTable records)
{
for (Map<String, String> row : records.asMaps(String.class, String.class))
{
System.out.println(row.get("first_name").intern());
}
}`
`@给定(“^following users$”)
公共作废以下用户(数据表记录)
{
for(映射行:records.asMaps(String.class,String.class))
{
System.out.println(row.get(“first_name”).intern();
}
}`
请尝试此代码,它将为您提供“名字”列下的值。如果有多行,则在循环中使用此代码
`@Given("^the following users$")
public void the_following_users(DataTable records)
{
for (Map<String, String> row : records.asMaps(String.class, String.class))
{
System.out.println(row.get("first_name").intern());
}
}`
`@给定(“^following users$”)
公共作废以下用户(数据表记录)
{
for(映射行:records.asMaps(String.class,String.class))
{
System.out.println(row.get(“first_name”).intern();
}
}`
请尝试此代码,它将为您提供“名字”列下的值。如果有多行,则在循环中使用此代码
`@Given("^the following users$")
public void the_following_users(DataTable records)
{
for (Map<String, String> row : records.asMaps(String.class, String.class))
{
System.out.println(row.get("first_name").intern());
}
}`
`@给定(“^following users$”)
公共作废以下用户(数据表记录)
{
for(映射行:records.asMaps(String.class,String.class))
{
System.out.println(row.get(“first_name”).intern();
}
}`
您需要行还是只需要列?如果您只需要列,那么应该旋转表。没有直接的方法只能访问列您是需要行还是只需要列?如果你只需要列,那么你