[英]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);
您可能應該以int
, long
或double
訪問總和
double sum = rs.getDouble(1);
total_fine.setText(Double.toString(sum));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.