通常,
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();}
这样可以确保所有*结果都得到处理。
*:此示例忽略了允许将多个异常与结果集和更新计数交错的系统(如SQL Server)的异常结果.
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)