簡體   English   中英

通過SQL查詢檢索列的總值,並通過Java fx顯示

[英]Retrieve total value of column by SQL query and show by Java fx

我試圖從SQl查詢中獲取總值,這給我一個錯誤,即列名不存在,其中tbl_internet是表名,而billFine是數據類型為double的列,total_fine是標簽名。

try {
        String sql = "select sum(billFine) from tbl_internet ";
        pst = con.prepareStatement(sql);
        rs = pst.executeQuery();
        if(rs.next())
        {
            String sum= rs.getString("sum(billFine)");
            total_fine.setText(sum);
        }
    } catch (SQLException e) {
        e.printStackTrace();
    }

錯誤說明

com.microsoft.sqlserver.jdbc.SQLServerDriver>找不到列名

關於錯誤

錯誤告訴您jdbc找不到SQL列名稱。 您正在嘗試獲取一個字面名稱為“ sum(billFine)”的列,該名稱在表中沒有。

使用以下查詢String sql = "select sum(billFine) as amount from tbl_internet ";

現在,將返回的resultSet將具有一個名為“ amount”的列,其中存儲了總和值。

現在,您需要使用getDouble()而不是getString() ,因為sum()應該返回一個double值。

然后使用rs.getDouble("amount");提取金額rs.getDouble("amount");

只需通過ResultSet的列索引訪問該值(另請參見https://docs.oracle.com/en/java/javase/11/docs/api/java.sql/java/sql/ResultSet.html#getString( int) )。 我更喜歡將索引用於SELECT *查詢以外的所有查詢,因為這樣可以避免多次對列名進行硬編碼,並且避免像在這種情況下那樣傳遞錯誤的值:

String sum = rs.getString(1);

您可能應該以intlongdouble訪問總和

double sum = rs.getDouble(1);
total_fine.setText(Double.toString(sum));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM