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

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

DDD
DDDオリジナル
2024-12-21 04:32:14901ブラウズ

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。