Mysql
 sql >> Base de données >  >> RDS >> Mysql

JDBC :Comment récupérer le résultat de la fonction SQL COUNT à partir du jeu de résultats ?

Donnez un nom à la colonne :

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

Vous pouvez également passer le numéro de l'index de la colonne (au cas où vous ne voudriez pas modifier votre requête) qui est basé sur 1. Vérifiez 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);
}

En dehors de cela, il serait préférable que vous utilisiez un PreparedStatement pour exécuter vos requêtes, il présente de nombreux avantages par rapport au simple Statement comme expliqué ici :Différence entre Statement et PreparedStatement . Votre code ressemblerait à :

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