Java中的ExecuteQuery()与getResultSet()
技术问答
451 人阅读
|
0 人回复
|
2023-09-14
|
statement.executeQuery和之间有什么区别statement.getResultSet()相信两者都会回来。ResultSet一条select但是当我们应该使用它们中的哪一个时,有任何特定的标准。
0 p6 q' |7 R: F# U 5 ^7 X/ V/ Y8 b O
解决方案: $ q7 p* }# e' d* z: p. D
通常,executeQuery如果你知道执行是什么select应该使用句子getResultSet()方法本身 该句子不会执行 。! r: ^1 J( u7 h( C& L* r% J
所述getResultSet目的是与组合使用execute。该execute该方法适用于未知语句类型或可能产生多个结果(即0或多个更新计数或结果集)的语句。" b# r8 p7 ~' o/ Q, q Y
简而言之:你通常使用它executeQuery。
5 @( E9 ]. _* s' B0 B$ Z一个简单的例子,execute如果代码不知道它将执行什么查询(更新、查询或更复杂的查询),例如,您应该在执行用户提供的查询时使用它。6 \4 |8 V+ g: G1 A/ \" U; u; M
另一个例子是SQL Server在存储过程中,它可以返回多个更新计数和结果集。
8 w: ]3 V- ?" t1 K8 P处理结果的一般方法execute是:, `9 A* V3 P: x( r3 @
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();}这样可以保证一切*结果都处理好了。
% f6 }; B* d; t*:这个例子忽略了允许多个异常与结果集和更新计数交错的系统(例如SQL Server)的异常结果. |
|
|
|
|
|