ホームページ > Java > &#&チュートリアル > 単一の JDBC ステートメントで複数の SQL クエリを実行するにはどうすればよいですか?

単一の JDBC ステートメントで複数の SQL クエリを実行するにはどうすればよいですか?

DDD
リリース: 2024-12-21 04:32:14
オリジナル
899 人が閲覧しました

How Can I Execute Multiple SQL Queries in a Single JDBC Statement?

JDBC を使用した単一ステートメントでの複数のクエリの実行

JDBC では、特定の要件がありますが、単一のステートメントで複数のクエリを実行できます。 .

オプション 1: 複数の構成クエリ

セミコロンで区切って複数のクエリを実行するには、データベース接続プロパティallowMultiQueriesをtrueに設定します。

String url = "jdbc:mysql:///test?allowMultiQueries=true";
ログイン後にコピー
boolean hasMoreResultSets = stmt.execute(multiQuerySqlString);
ログイン後にコピー

その後、以下を使用してクエリ結果を反復処理します。

while ( hasMoreResultSets || stmt.getUpdateCount() != -1 ) {
  if ( hasMoreResultSets ) {
    ResultSet rs = stmt.getResultSet();
    // handle resultSet
  } else {
    int queryResult = stmt.getUpdateCount();
    // handle DML updates
  }
  hasMoreResultSets = stmt.getMoreResults();
}
ログイン後にコピー

オプション 2: 保存プロシージャ

SELECT クエリと INSERT クエリを組み合わせたストアド プロシージャを作成します。次に、CallableStatement を使用して実行します:

CallableStatement cstmt = con.prepareCall("call multi_query()");
boolean hasMoreResultSets = cstmt.execute();
ログイン後にコピー

以前と同様に、返された結果を繰り返し処理します:

while (hasMoreResultSets) {
  ResultSet rs = stmt.getResultSet();
  // handle resultSet
}
ログイン後にコピー

この機能は広くサポートされていますが、サポートされていない可能性があることに注意することが重要です。すべての JDBC ドライバーまたはデータベース実装で使用できます。互換性の詳細については、必ず特定のドライバーのドキュメントを参照してください。

以上が単一の JDBC ステートメントで複数の SQL クエリを実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート