回答

收藏

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)的异常结果.
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则