为什么是resultSet.getInt(1);以下代码中是否需要?

问题描述 投票:2回答:2

据我所知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;
}
java jdbc count
2个回答
2
投票

executeQuery()方法返回一个ResultSet对象,而不是整数值。声明:

SELECT COUNT(*) FROM Gyujtoallomasok

[计算表中的行数,并将此结果返回到unnamedCOUNT(*)。要获得此结果,您必须使用方法ResultSetgetInt()对象中提取它,因为结果是整数,所以通过传递列的索引1(它是[C0中的第一个也是唯一的列]):

ResultSet

如果您为该列加上别名:

resultSet.getInt(1)

您也可以通过以下方式获得其价值:

SELECT COUNT(*) AS counter FROM Gyujtoallomasok

2
投票

resultSet.getInt("counter") 仍然需要,因为此行:

getInt

将从数据库返回的内容放入ResultSet resultSet = statement.executeQuery("SELECT COUNT(*) FROM Gyujtoallomasok"); ,它是“表示数据库结果集的数据表”

然后您必须遍历ResultSet来检索答案,这是ResultSetresultSet.next()在做什么。

© www.soinside.com 2019 - 2024. All rights reserved.