JDBC Connector/J を使用した MySQL での複数のクエリの実行
MySQL Connector/J では、通常、セミコロンで区切られた複数のクエリを実行できません。サポートされました。代わりに、クエリは個別に実行する必要があります。
エラーの理由
execute メソッドを使用して、セミコロンで区切られた複数のクエリを含む SQL ステートメントを実行する場合、 MySQLSyntaxErrorException が発生します。これは、MySQL を含むほとんどのデータベースでは、セミコロンがステートメント構文の一部としてではなく、ステートメント終了文字として使用されるためです。
MySQL 固有のオプション
MySQL には、単一のステートメントで複数のクエリの実行を許可するために有効にできる、allowMultiQueries と呼ばれるオプションが用意されています。ただし、これは JDBC 仕様に準拠していないため、コードの移植性が低下する可能性があります。
ベスト プラクティス
最適な移植性と JDBC 仕様との互換性を実現するには、次のようにします。複数のクエリを個別に実行することをお勧めします。以下に例を示します。
Statement statement = connection.createStatement(); statement.execute("select fullName from user where user_id=1"); ResultSet resultSet1 = statement.getResultSet(); statement.execute("select fullName from user where user_id=2"); ResultSet resultSet2 = statement.getResultSet();
クエリを個別に実行することで、潜在的な構文エラーを回避し、コードが JDBC 標準に準拠していることを確認します。
以上がMySQL で JDBC Connector/J を使用して 1 つのステートメントで複数のクエリを実行できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。