据我所知getInt(column index)
从当前行中检索列值,但在这种情况下我不理解它的用途。不是SQL语句SELECT COUNT(*) FROM Gyujtoallomasok
已经计算了表中的行?如果是这样,为什么我们需要其余的?
public int count() {
try (Connection connection = DriverManager.getConnection(URL);
Statement statement = connection.createStatement()) {
ResultSet resultSet = statement.executeQuery("SELECT COUNT(*) FROM Gyujtoallomasok");
if (resultSet.next()) {
int count = resultSet.getInt(1);
return count;
}
} catch (SQLException exception) {
// TODO: log
}
return -1;
}
executeQuery()
方法返回一个ResultSet
对象,而不是整数值。声明:
SELECT COUNT(*) FROM Gyujtoallomasok
[计算表中的行数,并将此结果返回到unnamed列COUNT(*)
。要获得此结果,您必须使用方法ResultSet
从getInt()
对象中提取它,因为结果是整数,所以通过传递列的索引1
(它是[C0中的第一个也是唯一的列]):
ResultSet
如果您为该列加上别名:
resultSet.getInt(1)
您也可以通过以下方式获得其价值:
SELECT COUNT(*) AS counter FROM Gyujtoallomasok
resultSet.getInt("counter")
仍然需要,因为此行:
getInt
将从数据库返回的内容放入ResultSet resultSet = statement.executeQuery("SELECT COUNT(*) FROM Gyujtoallomasok");
,它是“表示数据库结果集的数据表”。
然后您必须遍历ResultSet来检索答案,这是ResultSet和resultSet.next()
在做什么。