java - 字符串查询 = "SELECT sum(Cardhundred)FROM Dialog";
问题描述
目前正在尝试获取名为 的列的整数Cardhundred
总和,我没有继续回答,有人可以建议我获得列中所有整数的总和吗?
我想从 access 数据库中的列中获取总和,我想从中获取总和的列的所有整数值都不是 double 或 float,并且我已经为没有结果的代码做了一些代码,这意味着应该显示结果的文本字段为空。
这是我的代码:
if(showtotal.isSelected()) {
try {
Connection conn = DriverManager.getConnection("jdbc:ucanaccess://E:\\Mydb.accdb");
Statement st = conn.createStatement();
String query = "SELECT sum(Cardhundred)FROM Dialog";
ResultSet rs=st.executeQuery(query);
if(rs.next()) {
String total=rs.getString("sum(Cardhundred)");
showdate.setText(""+total+"");
}
} catch(Exception e){ }
}
解决方案
有两种方法可以解决这个问题:使用列索引(而不是名称)然后您就不必担心表达式的名称:
int total = rs.getInt(1);
JDBC 中的列编号从 1 开始,而不是像 Java 中的数组那样从 0 开始。
或者,在查询中使用列别名:
String query = "SELECT sum(Cardhundred) as total_number FROM Dialog";
然后使用该别名获取值:
int total = rs.getInt("total_number");
推荐阅读
- java - Apache Commons HTTPClient 在 POST 请求中上传文件以及参数
- go - 从孩子取消上下文
- python - 如何在 sqlalchemy 中设置 ARITHABORT ON
- python - 我将如何更改 fernet 加密密钥长度(以位为单位)?
- python-3.x - 无法使用 Pandas 获取日期为 0001-01-01 BC 的 Postgres 记录
- c++ - std::multiset 交集编译错误
- vhdl - 为什么我在 F1 的波形中出现 U?
- linux - 最新更新后 VS Code 冻结
- python - 将 for 循环中的数据写入数据框 pandas
- python - Asyncpg 无法从数据库中获取数据