ホームページ > Java > &#&チュートリアル > Hibernate はプレースホルダーではなく実際のパラメーター値を使用して SQL クエリをログに記録できますか?

Hibernate はプレースホルダーではなく実際のパラメーター値を使用して SQL クエリをログに記録できますか?

Barbara Streisand
リリース: 2024-12-27 09:35:10
オリジナル
529 人が閲覧しました

Can Hibernate Log SQL Queries with Actual Parameter Values Instead of Placeholders?

Hibernate でパラメータ値を含むクエリ文字列を出力する

Hibernate を使用する場合、デバッグやデバッグを容易にするために、生成された SQL クエリを出力すると便利です。パフォーマンス分析。デフォルトでは、これらのクエリはパラメータ値に疑問符 (?) プレースホルダを付けてログに記録されるため、渡される実際のデータを理解することが困難になる可能性があります。

Can Hibernate Print SQL Queries with Real Values?

簡単に言うと「いいえ」です。Hibernate は実際のパラメータ値を使用して SQL クエリをログに記録する方法を直接提供しません。ただし、この機能を実現するにはいくつかの方法があります。

JDBC パラメータのログの有効化

1 つの方法は、次のカテゴリのログを有効にすることです:

  • org.hibernate.SQL: すべての SQL DML をログに記録するためにデバッグに設定しますステートメント。
  • org.hibernate.type: すべての JDBC パラメーターをログに記録するためにトレースするように設定します。

この目的のためのサンプル log4j 構成:

log4j.logger.org.hibernate.SQL=debug
log4j.logger.org.hibernate.type=trace
ログイン後にコピー

org.hibernate.SQL ロガーは従来の hibernate.show_sql=true プロパティと同等であり、すべての SQL ステートメントをログに記録します。 org.hibernate.type ロガーは、トレースするように設定すると、バインドされた値を含む JDBC パラメーターに関する詳細情報を提供します。

JDBC プロキシ ドライバーの使用

別の解決策P6Spy などの JDBC プロキシ ドライバーを利用することです。このツールは、JDBC 呼び出しをインターセプトし、バインドされたパラメーター値を含む SQL ステートメントのリアルタイムのログを提供します。 P6Spy は、構成ファイルまたは環境変数を使用して構成できます。

これらの方法の 1 つを採用すると、実際のパラメーター値を含む SQL クエリを出力できるようになり、Hibernate を使用する場合のデバッグおよび分析プロセスが強化されます。

以上がHibernate はプレースホルダーではなく実際のパラメーター値を使用して SQL クエリをログに記録できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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