簡體   English   中英

Java JDBC resultSet.next問題

[英]Java JDBC resultSet.next issue

我的resultSet為null

System.out.println("ResultSet :" +rs.next()); 

輸出:

ResultSet:false

但…

if(rs.next() == false) {//condition }

…返回錯誤:

java.sql.SQLException: Exhausted Resultset
at oracle.jdbc.driver.OracleResultSetImpl.getInt(OracleResultSetImpl.java:915)
at oracle.jdbc.driver.OracleResultSet.getInt(OracleResultSet.java:438)
at com.dxc.gameservices.dao.BadgesService.BadgeOne(BadgesService.java:33)

碼:

Statement statement = connection.createStatement();
          ResultSet rs = statement.executeQuery("select * from TABLE Where Column1=1 AND column2=4");
           if(rs.next() == false) {
               System.out.println("Inside IF");
           }
           else{
               System.out.println("Inside ELSE");
           }

此異常意味着您消耗相同結果的兩倍:

java.sql.SQLException:耗盡oracle.jdbc.driver.OracleResultSetImpl.getInt(OracleResultSetImpl.java:915)的結果集

您沒有顯示執行getInt()的代碼,但是您可能會執行以下操作:

rs.next();
int value = rs.getInt(index);
int anotherValue = rs.getInt(index);

你不能。 您消耗同一行兩次。

您必須調用next()來檢索游標的下一行:

while (rs.next()) {
   int value = rs.getInt(index);
   ...
}

使用此代碼

if (rs != null) {
  while (rs.next()) {
    …
  }
}

請刪除行System.out.println(“ ResultSet:” + rs.next());。 在嘗試檢入之前,因為下一個元素已被檢查。

同時(rs.next()){}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM