JavaでのgetResultSet対のexecuteQuery()()

Pratik Ku​​mawat:

違いは何であるstatement.executeQueryとはstatement.getResultSet()私は両方が返されますと信じてResultSet、SELECT文のためではなく、私たちはその彼らの使用する必要があり、特定の基準があります。

マークRotteveel:

一般的に、あなたは使用する必要がありexecuteQuery、あなたがselect文を実行している知っていれば。getResultSet()それだけで方法は、文を実行しません

getResultSetと組み合わせて使用することを意図していますexecuteexecute方法は、未知の文タイプ、または(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のような)システムのための例外結果を無視し、参照*すべてを取得する方法* JDBCを使用して、ストアドプロシージャからのバックより徹底例えば

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=204964&siteId=1