Java 为什么resultSet.getInt(1);在下面的代码中是否需要?

Java 为什么resultSet.getInt(1);在下面的代码中是否需要?,java,jdbc,count,Java,Jdbc,Count,据我所知,getInt(column index)从当前行检索一个列值,但我不理解它在这种情况下的用途。SQL语句是否从Gyujtoallomasok中选择了COUNT(*) 已经在统计表中的行了吗?如果是这样的话,为什么我们需要其余的呢 public int count() { try (Connection connection = DriverManager.getConnection(URL); Statement statement = connection.

据我所知,
getInt(column index)
从当前行检索一个列值,但我不理解它在这种情况下的用途。SQL语句
是否从Gyujtoallomasok中选择了COUNT(*)
已经在统计表中的行了吗?如果是这样的话,为什么我们需要其余的呢

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
对表中的行进行计数,并将此结果返回到未命名列
COUNT(*)

要获得此结果,必须使用方法
getInt()
ResultSet
对象中提取它,因为结果是整数,通过传递列的索引
1
(它是
ResultSet
中的第一列也是唯一一列):

如果对列设置别名,如下所示:

SELECT COUNT(*) AS counter FROM Gyujtoallomasok
您还可以通过以下方式获得其价值:

resultSet.getInt("counter")

由于此行:

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


然后,您必须遍历ResultSet来检索您的答案,即
ResultSet.next()
ResultSet.getInt()正在执行。

如果删除它会发生什么?(这是一个教学问题:如果您认为某些东西是不必要的,您必须认为没有它就会发生某些事情)
COUNT(*)
将在ResultSet中创建一个列,类型为
int
,行数为。您正在读取整型列中的值,这就是您使用此语句的原因。请参阅文档以了解更多信息
ResultSet resultSet = statement.executeQuery("SELECT COUNT(*) FROM Gyujtoallomasok");