java - 耗尽结果集错误

标签 java oracle11g

我有这个代码可以从我的数据库中的帐户表中获取金额 但我收到此错误:耗尽结果集

  public int accountAmount(int custID){
        int amount=0;
        try{
            Class.forName("oracle.jdbc.driver.OracleDriver");
            Connection connection =
                    DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl" , "MYATM","myjava123");
            PreparedStatement statment =  connection.prepareStatement("select amount from Account where cust_id=?");
            statment.setInt(1,custID);
            ResultSet resultSet=statment.executeQuery();

            resultSet.next();

            amount= resultSet.getInt("amount");

            statment.close();
            connection.close();

        }
        catch (Exception ex){
            System.out.println(ex.getMessage());

        }


       return  amount;
    }

最佳答案

检查 ResultSet#next() 的返回类型;剧透 - 这是一个 boolean 值(如果为 false)表示您已经过了最后一行。所以,而不是这个

resultSet.next();
amount= resultSet.getInt("amount");

你需要这个!

if (resultSet.next()) {
  amount= resultSet.getInt("amount");
}

关于java - 耗尽结果集错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21294738/

相关文章:

java - ParadiseInfo2 变量错误代码

java - java中如何打印多个int

plsql - 将 bool 值转换为 Varchar2

tomcat - Apache Tomcat 连接池和 Oracle 全局临时表。数据可以共享吗?

oracle - 找到最好的版本

sql - SQL (Oracle) 中的递归计算

java - 创建、写入和读取文件 java

java - 如何确保我的 map 在我的构建器模式中设置后永远不会被修改?

java - Tomcat AJP 请求转普通 HTTP

oracle - 使用重载函数创建包时出现 PLS-00103 错误