Дайте име на колоната:
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");
}
Можете също така да предадете номера на индекса на колоната (в случай че не искате да променяте заявката си), който е базиран на 1. Проверете 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);
}
Освен това би било по-добре да използвате PreparedStatement
за да изпълни вашите заявки, той има много предимства пред обикновения Statement
както е обяснено тук:Разлика между изявление и PreparedStatement
. Вашият код ще изглежда така:
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");
}