gpt4 book ai didi

java - 如何从 resultResult 中获取行数?

转载 作者:行者123 更新时间:2023-12-01 18:27:03 25 4
gpt4 key购买 nike

我使用以下方法来确定我的结果集不为空,并继续对值进行断言。

...
resultSet = statement.executeQuery("select count(*) as rowCount from tbName where...");

while (resultSet.next()) {
rowCount = Integer.parseInt(resultSet.getString("rowCount"));
}

Assert.assertTrue(rowCount > 0);

resultSet = statement.executeQuery("select * from tbName where ...");
while (resultSet.next()) {
//do some assertions on values here.
}
...

有没有办法直接在单个查询中直接从结果集中获取行数?像下面这样吗?

resultSet = statement.executeQuery("select * from tbName where ...");
if( resultSet.count/length/size > 0) {

}

最佳答案

您可以更改查询以包含包含行数的列:

select t.*, count(*) over () as row_count
from tbName t
where ...

然后你可以使用得到计数

int rowCount  rs.getInt("row_count");

请注意,您不会得到 0 计数,因为这意味着实际查询一开始就没有返回任何内容。因此,您不能使用它来验证您的查询是否返回任何内容。如果您只想检查结果是否为空,请使用next()

resultSet = statement.executeQuery(".....");
if (resultSet.next()) {
// at least one row returned
} else {
// no rows returned at all
}
<小时/>

顺便说一句:您应该始终使用与列的数据类型匹配的 getXXX() 方法。对所有列使用 getString() 并不是一个好主意。

关于java - 如何从 resultResult 中获取行数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25763535/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com