用尽的结果集错误

时间:2014-01-22 21:51:00

标签: 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;
    }

3 个答案:

答案 0 :(得分:2)

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

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

你需要这个!

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

答案 1 :(得分:1)

在从resultset检查resultset.next()返回true之前,你几乎做对了。希望有所帮助:)

答案 2 :(得分:0)

您的结果集可能是空的。尝试像这样使用它来捕获该状态:

 if (rs.next()) {
     amount= resultSet.getInt("amount")
 }
 else {
     // result set is empty, throw an error?
 }