sql >> Base de Datos >  >> RDS >> Mysql

JDBC:¿Cómo recuperar el resultado de la función SQL COUNT del conjunto de resultados?

Asigne un nombre a la columna:

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");
}

También puede pasar el número del índice de la columna (en caso de que no desee modificar su consulta) que se basa en 1. Compruebe 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);
}

Aparte de esto, sería mejor si usa un PreparedStatement para ejecutar sus consultas, tiene muchas ventajas sobre la simple Statement como se explica aquí:Diferencia entre declaración y declaración preparada . Su código se vería así:

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");
}