You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java中执行Oracle查询后在Eclipse控制台无法输出正确结果求助

问题解决:Java执行Oracle查询返回0/1而非实际数据
  • 错误根源:你调用的executeUpdate()方法是用于执行INSERT/UPDATE/DELETE这类修改数据的SQL语句,它的返回值是SQL执行后受影响的行数,所以才会输出0或1这类数字。执行查询语句必须使用executeQuery()方法,它会返回包含查询结果的ResultSet对象,通过这个对象才能读取数据库中的实际数据。

  • 修正后的代码示例:

ConnectTodb db = new ConnectTodb("password");
db.connect();
Statement stmt = db.getStatement();
// 执行查询获取结果集
ResultSet rs = stmt.executeQuery("SELECT * FROM (select entry, row_number() over(order by entrie_date desc) rn from entry) where rn = 1");
// 遍历结果集读取数据
while (rs.next()) {
    // 根据列的实际数据类型选择对应get方法,这里假设entry是数值类型
    BigDecimal entryValue = rs.getBigDecimal("entry");
    int rn = rs.getInt("rn");
    System.out.println("entry: " + entryValue + ", rn: " + rn);
}
// 记得关闭数据库资源(实际开发中建议用try-with-resources自动关闭)
rs.close();
stmt.close();
db.close();
  • 额外注意事项:
    • 要根据数据库列的实际数据类型选择合适的ResultSet获取方法,比如字符串用getString()、整数用getInt()、高精度小数用getBigDecimal(),避免类型不匹配导致的错误。
    • 数据库连接、Statement、ResultSet等资源使用后必须关闭,防止连接泄漏,推荐使用Java的try-with-resources语法,能自动关闭实现了AutoCloseable接口的资源。

内容的提问来源于stack exchange,提问作者singhKirat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 07:06:21