Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

JDBC:Como recuperar o resultado da função SQL COUNT do conjunto de resultados?


Dê um nome para a coluna:
ResultSet rs= stmt.executeQuery("select count(name) AS count_name from db.persons where school ='"+sch+"'");
if (rs.next()) {
    int count= rs.getInt("count_name");
}

Você também pode passar o número do índice da coluna (caso não queira modificar sua consulta) que é baseado em 1. Verifique ResultSet#getInt(int columnIndex) :
ResultSet rs= stmt.executeQuery("select count(name) from db.persons where school ='"+sch+"'");
if (rs.next()) {
    int count= rs.getInt(1);
}

Além disso, seria melhor se você usasse um PreparedStatement para executar suas consultas, ele tem muitas vantagens sobre o simples Statement conforme explicado aqui:Diferença entre Statement e PreparedStatement . Seu código ficaria assim:
String sql = "select count(name) AS count_name from db.persons where school = ?";
PreparedStatement pstmt = con.prepareStatement(sql);
pstmt.setString(1, sch);
ResultSet rs = pstmt.executeQuery();
if (rs.next()) {
    int count = rs.getInt("count_name");
}