gpt4 book ai didi

java - JDBC getDouble 返回 0.0

转载 作者:行者123 更新时间:2023-11-29 08:40:20 24 4
gpt4 key购买 nike

我是 Java 和 JDBC 的新手。我试图通过 JDBC 从数据库中获取一个 double 值,并使一个全局变量等于该值。这是我所做的。

public class Console {

String sql;
Statement stmt;
Connection conn;
ResultSet rs;

//Category Total
public static double num;

public Console(){
try{
Class.forName("com.mysql.jdbc.Driver");
System.out.println("Connecting to database...");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/database?autoReconnect=true&useSSL=false","user","password");
stmt = conn.createStatement();
System.out.println("Connected database successfully...");

sql = "SELECT sum(a) FROM table";
while(rs.next()) {
rs = stmt.executeQuery(sql);
num = rs.getDouble("sum(a)");
}
} catch(Exception e) {
e.printStackTrace();
}
}

public static void main(String args[]) {
System.out.println(num);
}

当我运行程序时,它打印出 0.0,但实际值不是。

最佳答案

您需要在 while 循环之前获取结果集,然后遍历它

rs = stmt.executeQuery(...);
while (rs.next()) {
// and process your results row by row here...
}

否则(如您所见)您的 rs 变量未设置

您的结果集不会包含 sum(a) 作为列名。您可以按位置获取结果(例如 getInt() 可以采用索引整数)或重命名结果列(例如 select sum(a) as sum FROM table)和引用就是这样。

关于java - JDBC getDouble 返回 0.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40702750/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com