java - 使用 jdbi 迭代 ResultIterable 对象

标签 java iterator iterable jdbi

昨天我发布了一个关于从 Db 中检索数据并对其进行迭代的问题。有人帮助我指出 JDBI 而不是原始数据类型。

注意事项:我本来就是一名测试人员,并且刚刚开始探索 JDBI 以进行一些自动化测试。

所以,我认为我已经改进了以前的解决方案,但我只是在努力实现最好的方法来迭代我的数据集,现在它已被检索到。

这是我返回数据集的方法:

    public List<FlightDataBean> lastFlightBookedResults(String supplierCode, String channel) {

    String sqlQuery = getData(supplierCode, channel);

    List<FlightDataBean> dataSet = jdbi.withHandle(handle ->
            handle.createQuery(sqlQuery)
                    .mapToBean(FlightDataBean.class)
                    .list());

    return dataSet;
}

这是我的 Bean 类:

public class FlightDataBean {

private String startDate;
private String origin;
private String destination;

public FlightDataBean(){

}

public FlightDataBean(String startDate, String origin, String destination) {
    this.startDate = startDate;
    this.origin = origin;
    this.destination = destination;

}

public String getStartDate() {
    return startDate;
}

public void setStartDate(String startDate) {
    this.startDate = startDate;
}

public String getOrigin() {
    return origin;
}

public void setOrigin(String origin) {
    this.origin = origin;
}

public String getDestination() {
    return destination;
}

public void setDestination(String destination) {
    this.destination = destination;
}

}

这是返回数据集的示例,30 行 3 列:

enter image description here

很明显,我可以通过这样做来检索单个结果:

 List<FlightDataBean> resultSet;
    resultSet = getFlightData(syndicatorName);

    String startDate = (resultSet.get(0).getStartDate());
    String origin = String.valueOf((resultSet.get(1)).getOrigin());
    String destination = String.valueOf(resultSet.get(2).getDestination());

我只需要一个关于迭代所有 30 个的最佳/最有效/最安全方法的指针,因为我将结果用作搜索测试数据,并且可能需要在使用数据集的进一步方法中依次使用每个结果直到它在网站上返回结果。

我正在继续学习 JDBI,但与此同时任何帮助都会很棒

最佳答案

我已经用类似的答案回答了你的最后一个问题......你可以修改代码以适应你当前的情况:

for (FlightDataBean i : resultSet){
    String startDate = i.getStartDate();
    String origin = i.getOrigin();
    String destination = i.getDestination();
    //further code, go on from here.
}

for 循环除了为结果集中的每个 Bean 提取 3 个值(并执行您之后添加的代码)外,没有别的意思。

关于java - 使用 jdbi 迭代 ResultIterable 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52273865/

相关文章:

java - 当从我的主类访问时,我的(正确的) HashMap 返回 null -(初学者)

java - 为什么即使使用迭代器也会出现 ConcurrentModificationException?

java - 为什么在 java.util.Collection 上有一个方法 iterator()

java - 我的 Comparable 实现出了点问题

java - 在Linux 64位下使用Java实现串口工作

java - springboot + eureka + log4j2 空日志文件

java - 在 Hibernate 中数据库约束违规不会抛出异常

c++ - 迭代器的类型 C++

java - 将迭代器上的当前对象移动到列表末尾

python - 值错误 : invalid literal for float() in Python