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");