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