如何在javafx文本区域中显示计数查询的所有行?这只是第一排而不是两排

如何在javafx文本区域中显示计数查询的所有行?这只是第一排而不是两排,javafx,Javafx,我希望count和groupby(sqlite)sql查询的两行显示在文本区域中,但它只显示第一行 当我将conn.close()语句放在“while”块之外时,它只显示第二行,而不显示第一行 @FXML private void viewResult(ActionEvent event) { try { Connection conn = dbConnection.getConnection(); Statement resultStmt = c

我希望count和groupby(sqlite)sql查询的两行显示在文本区域中,但它只显示第一行

当我将
conn.close()
语句放在“while”块之外时,它只显示第二行,而不显示第一行

@FXML
private void viewResult(ActionEvent event)
{
    try
    {
        Connection conn = dbConnection.getConnection();
        Statement resultStmt = conn.createStatement();   
        ResultSet rs = resultStmt.executeQuery("select candidate, count(candidate) from voteResult group by candidate");
        while (rs.next()) {
            String news = rs.getString(1)+" "+rs.getString(2);
            this.result.setText(news);
            conn.close();
        }
    }
    catch (SQLException e)
    {
        System.err.println("Error " + e);
    }

}
预期结果应如下所示:

JOSEPH THANKGOD 4
ORJI DANIEL 1

每次调用
setText(字符串值)
时,将覆盖上一个值。所以您必须首先构建结果字符串,然后将其设置为
TextArea
的内容。我不知道
连接
和其他组件是如何协同工作的,但我想如果在第一个while循环中关闭
连接
,则
结果集
将无法再用于获取下一行。此外,第二次或第三次调用
Connection
close
方法不会导致任何事情发生,因为如果
Connection
对象已关闭,则这是一个no op

@FXML
private void viewResult(ActionEvent event) {

    // Open resources with try-with-resources block
    try (Connection conn = dbConnection.getConnection();
        Statement resultStmt = conn.createStatement();
        ResultSet rs = resultStmt.executeQuery("select candidate, count(candidate) from voteResult group by candidate");){

        StringBuilder builder = new StringBuilder();
        while (rs.next()) {
            // Append each row
            builder.append(rs.getString(1)).append(" ").append(rs.getString(2)).append("\n");
        }

        // Remove last newline character
        if (builder.length() > 0) {
            builder.setLength(builder.length() - 1);
        }

        // Get complete string and set as TextArea content
        this.result.setText(builder.toString());

    // Resources will be closed automatically due to try-with-resources
    }
}

此外,您不应混合使用UI和数据库代码,并应使用“尝试使用资源”块(查看)。

使用代码格式编辑您的文章。执行代码时,您得到的当前字符串是什么?您的代码完美地解决了问题。其中唯一的bug是sb,我理解它是builder变量。我非常感激。你说得对,我已经修好了。我很高兴能帮助你!如果你能接受这个答案就好了:)你的答案很完美。