Mysql
 sql >> Datenbank >  >> RDS >> Mysql

JDBC:Wie rufe ich das Ergebnis der SQL COUNT-Funktion aus der Ergebnismenge ab?

Geben Sie der Spalte einen Namen:

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

Sie können auch die Nummer des Indexes der Spalte übergeben (falls Sie Ihre Abfrage nicht ändern möchten), die auf 1 basiert. Überprüfen Sie 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);
}

Abgesehen davon wäre es besser, wenn Sie einen PreparedStatement Um Ihre Abfragen auszuführen, hat es viele Vorteile gegenüber dem einfachen Statement wie hier erklärt:Unterschied zwischen Statement und PreparedStatement . Ihr Code würde wie folgt aussehen:

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