デバッグのために PreparedStatement からクエリを取得する方法
Java では、java.sql.PreparedStatement により動的バインディングが可能になり、パラメータ化されたクエリを効率的に実行できます。パラメータ値の。場合によっては、デバッグ中に、実行前にクエリ全体を確認することが必要になることがあります。この記事では、このクエリを取得して出力する方法について説明します。
PreparedStatement#toString() の確認
JDBC API に従って、最終的なクエリを取得するための明示的な方法はありません。クエリ文字列。ただし、運が良ければ、使用中の特定の JDBC ドライバーが PreparedStatement#toString() を通じてこの機能を提供する可能性があります。たとえば、PostgreSQL 8.x および MySQL 5.x ドライバーは、toString() が呼び出されたときに完全な SQL を返すことが知られています:
<code class="java">System.out.println(preparedStatement);</code>
代替: Statement Wrapper
採用されている JDBC ドライバーにこの機能がない場合は、setXxx() メソッドへのすべての呼び出しをログに記録するステートメント ラッパーを使用できます。活用されている。 toString() が呼び出されると、ラッパーは記録された情報に基づいて SQL 文字列を生成し、提供します。このタスクを実行する注目すべきライブラリは P6Spy です。
追加の考慮事項
開発者は、各 JDBC ドライバー開発チームに拡張リクエストを送信して、デバッグ目的のための包括的な toString() メソッド。
以上がJavaでPreparedStatementから最終的なクエリ文字列を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。