是什么区别statement.executeQuery和statement.getResultSet()。我相信两者都会返回ResultSet一个 select 语句,但是当我们应该使用它们中的哪一个时,是否有任何特定的标准。
通常,executeQuery如果您知道正在执行 select 语句,则应该使用。该getResultSet()方法本身不执行语句。
所述getResultSet的目的是在与组合使用execute。这些execute方法旨在与未知的语句类型或可以产生多个结果(即 0 个或多个更新计数或结果集)的语句一起使用。
简而言之:您通常应该使用executeQuery.
execute如果代码不知道它将执行什么查询(更新、查询或更复杂的东西),例如在执行用户提供的查询时,您应该使用的一个简单示例。
另一个示例是 SQL Server 存储过程,它可以返回多个更新计数和结果集。
处理结果的通用方法execute是:
boolean isResultSet = statement.execute(sql);
while (true) {
if (isResultSet) {
try (ResultSet rs = statement.getResultSet()) {
// do something with result set
}
} else {
int updateCount = statement.getUpdateCount();
if (updateCount == -1) {
// -1 signals no more results
break;
}
// do something with update count
}
// move to next result
isResultSet = statement.getMoreResults();
}
Run Code Online (Sandbox Code Playgroud)
这确保所有*结果都得到处理。
*:此示例忽略允许多个异常与结果集和更新计数交错的系统(如 SQL Server)的异常结果,有关更详细的示例,请参阅如何使用 JDBC 从存储过程中获取*所有内容*
| 归档时间: |
|
| 查看次数: |
4447 次 |
| 最近记录: |