据我所知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;
}
答案 0 :(得分:2)
方法executeQuery()
返回一个ResultSet
对象,而不是整数值。
声明:
SELECT COUNT(*) FROM Gyujtoallomasok
对表中的行进行计数,并在 unnamed 列COUNT(*)
中返回此结果。
要获得此结果,您必须使用方法ResultSet
从getInt()
对象中提取它,因为结果是整数,通过传递列的索引1
(它是第一个和ResultSet
中唯一的列):
resultSet.getInt(1)
如果您对列进行这样的别名:
SELECT COUNT(*) AS counter FROM Gyujtoallomasok
您还可以通过以下方式获得其价值:
resultSet.getInt("counter")
答案 1 :(得分:2)
getInt
:
ResultSet resultSet = statement.executeQuery("SELECT COUNT(*) FROM Gyujtoallomasok");
正在将数据库返回的内容放入ResultSet,这是“代表数据库结果集的数据表”。。
然后,您必须遍历ResultSet来检索resultSet.next()
和resultSet.getInt();
正在做什么的答案。