2015-04-05 3 views
-1

У меня возникли проблемы с преобразованием Stringsql результатов в int. Можете ли вы, ребята, сказать, как это сделать. Я делаю это, потому что мне нужно это значение, установленное в JLabel, которое показывает количество посещаемости. Я попытался найти ответ здесь, но я не смог его найти. Пожалуйста, ребята, помогите мне с этой проблемой?Результат преобразования SQL в целое число

public static int attendanceCount() throws ClassNotFoundException, SQLException { 
     String sql = "select count(accountNo) from attendance"; 
     Connection conn = DBConnection.getDBConnection().getConnection(); 
     Statement stm = conn.createStatement(); 
     ResultSet rst = stm.executeQuery(sql); 
     return rst; // How do I convert this into integer? 
    } 

Это то, что я должен выполнить.

private void setAttendanceTile() { 
     try { 
      int attendanceCount = AttendanceController.attendanceCount(); 
      inHouseMembersLabel.setText(Integer.toString(attendanceCount)); 
     } catch (ClassNotFoundException ex) { 
      Logger.getLogger(Home.class.getName()).log(Level.SEVERE, null, ex); 
     } catch (SQLException ex) { 
      Logger.getLogger(Home.class.getName()).log(Level.SEVERE, null, ex); 
     } 
    } 

Или есть ли другой способ достичь этого, не делая этого?

Спасибо.

+0

В чем причина проголосовавшего? – dnuka

ответ

0

получить ResultSet.getInt (1):

int id = rst.getInt(1); 
+0

Спасибо большое @ Farhęg – dnuka

+0

Вы очень приветствуетесь – jfun

0

Вы можете использовать метод ResultSet.getInt(). Требуется либо column index, либо column name. Here's an example from Oracle.

В вашем случае вам понадобится тот, который принимает индекс (обратите внимание, что индекс начинается с 1, а не 0).

0

Как предполагалось ранее, попробуйте использовать .getInt() метод.
Более того, я бы использовал PreparedStatement. Важно использовать PreparedStatement, поскольку он позволяет базе данных кэшировать ваши запросы.
Кроме того, всегда используйте свои Connection и ResultSet после их использования.

public static int attendanceCount() throws ClassNotFoundException, SQLException { 
    final int COLUMN_NO = 1; 
    final String SQL = "select count(accountNo) from attendance"; 
    Connection conn = DBConnection.getDBConnection().getConnection(); 
    PreparedStatement stm = conn.prepareStatement(SQL); 
    ResultSet rst = stm.executeQuery(); 
    int result = rst.getInt(COLUMN_NO); 
    try { 
     rst.close(); 
     conn.close(); 
    } catch (SQLException e) {} //ignore 
    return result; 
} 
Смежные вопросы