2014-05-02 3 views
0

Так что я пытаюсь проверить и посмотреть, все ли места на самолете были забронированы.Query Returns 96, но ResultSet возвращает 0

Я делаю это с помощью метода наблюдения:

public static boolean isAllBooked() { 
    String sql = "SELECT COUNT(*) FROM SEAT WHERE BOOKED IS NULL"; 
    boolean res = false; 
    try(Connection conn = getConnection("", ""); 
      PreparedStatement st = conn.prepareStatement(sql)) { 
     ResultSet rs = st.executeQuery(); 

     if (rs.next()) { 
      int i = rs.getInt(1); 
      if(i == 0) { 
       res = true; 
      } 
     } else { 
      res = false; 
     } 
     conn.close(); 
    } catch (SQLException ex) { 
     System.out.println("[HELPER CLASS] SQL ERROR: " + ex.getMessage()); 
    } 
    return res; 
} 

Но по какой-то причине, запрос при использовании в SQLDeveloper возвращает 96, а результат возвращает 0. Я пытался обернуть мою голову вокруг этого, но ни к чему помогло.

Что я здесь делаю неправильно?

+0

У меня была такая же проблема, когда я забыл совершить транзакцию в SQL Developer – hoaz

+0

Возможно, стоит проверить ['ResultSet.wasNull'] (http://docs.oracle.com/javase/7/docs /api/java/sql/ResultSet.html#wasNull()) после вызова 'getInt', чтобы увидеть, был ли результат фактически 0 или null. – andersschuller

+0

@andersschuller Нет. Это не пусто. – OmniOwl

ответ

0

Возможно, вы уже пробовали это, но думали, что все равно не пострадают, чтобы спросить.

  1. Убедитесь, что вы получаете доступ к той же базе данных из своего приложения, что и вы используете в базе данных SQLDeveloper.
  2. Попробуйте выполнить свой код в отладчике. Если вы не можете отлаживать, по какой-то причине ставьте больше операторов журнала.
  3. Каков ваш метод getConnection(). Проверьте возможности исключенного исключения или исключение, отличное от SQLException, которое бросается и проглатывается где-то. Потому что ваш метод обрабатывает только SQLException.

Надеюсь, это поможет вам решить вашу проблему. :)

+0

1. Я посмотрел на это, и да, я подключаюсь к одной базе данных. 2. Я пробовал это, но никаких ошибок и исключений вообще не было. 3. Ошибок не было. Все будет напечатано на консоли. – OmniOwl

+0

База данных Oracle – OmniOwl

+0

Каков тип данных BOOKED? – vkg

Смежные вопросы