java - 尝试检索多个 JDBC 结果

标签 java mysql database eclipse jdbc

因此,我试图打印出我的程序中处理某些严重程度的医疗状况(高、中和低)的所有医院,这些医院是从我的程序的另一部分传递过来的。

最初,它会找到正确的严重级别,因此它会检查数据库中的另一个表以查找医院并打印它们。然而,它只打印其中一家医院(有两家医院的严重程度很高,我正在测试),而不是另一家。

任何帮助将不胜感激,我觉得我的循环是错误的。

谢谢。

// Create selection query, get relevant hospitals
String select = "SELECT * FROM hospitals WHERE hospitalSeverityHandling = '" + medicalCondition + "'";


// Get results hospitals in the database
ResultSet results = statement.executeQuery(select);

// When hospitals have been found 

if (results.next())
{
    results.first();

    // Get hospitals with relevant severity
    //String hospital = results.getString("hospitalName");
    //System.out.println(hospital);

    // Respond to user, get hospital selection
    // TODO Hospital Selection
    JOptionPane.showMessageDialog(null, "A list of hospitals have been retrieved for severity level: " + medicalCondition, "Select available hospital", JOptionPane.INFORMATION_MESSAGE);   

    // Loop hospitals
    while(results.next())
    {
        String hospital = results.getString("hospitalName");
        System.out.println(hospital);
    }
}

最佳答案

您丢失了一条记录,因为您使用了 results.next() 两次。

相反,您可以按如下方式使用它:

   String select = "SELECT * FROM hospitals WHERE    
       hospitalSeverityHandling = '" + medicalCondition + "'";

    // Get results hospitals in the database
    ResultSet results = statement.executeQuery(select);

     // Loop hospitals
        while(results.next())
        {
            String hospital = results.getString("hospitalName");
            System.out.println(hospital);
        }
    }

关于java - 尝试检索多个 JDBC 结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40579514/

相关文章:

sql - PostgreSQL - 返回键值对数组的最佳方式

.net - 如何将 IBM iSeries 2 连接字符串中的 SQL 默认库指示到 AS/400?

java - Jlabel 显示旧数字和新数字

java - DatagramChannel、阻塞模式和cpu

php - 使用两个不同的表咨询更多的值组合

Mysql嵌套子查询未知列错误

java - 确定多行文本组件中文本的 XY 位置

java - 如何在 Vert.x 中对 Handler<RoutingContext> 进行单元测试?

mysql - 为什么 MySQL 允许 SELECT 查询中的非精确匹配?

mysql - 如何获取所有员工第二高工资的记录基数