Mysql
 sql >> Database >  >> RDS >> Mysql

JDBC:come recuperare il risultato della funzione SQL COUNT dal set di risultati?

Assegna un nome alla colonna:

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

Puoi anche passare il numero dell'indice della colonna (nel caso in cui non desideri modificare la tua query) che è basato su 1. Controlla 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);
}

A parte questo, sarebbe meglio se utilizzi un PreparedStatement per eseguire le tue query, ha molti vantaggi rispetto alla semplice Statement come spiegato qui:Differenza tra Statement e PreparedStatement . Il tuo codice sarebbe simile a:

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