問題タブ [p6spy]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql - Java jdbc コードでパラメーター化されていない SQL を検出するためのツール
Java/jdbc コードの SQL ステートメントを検査して、実行される SQL が許容できる品質であることを確認したいと考えています。Findbugs ではない PMD には、JDBC または SQL ルールがないようです。p6spy を使用して SQL をログに記録し、その方法を確認することもできますが、これは手動です。
PMD/Findbugs/etc を使用して、「=」または「in」がある PreparedStatement に渡される文字列が比較側でパラメータ化された変数のみを持つというルールを作成する戦略かどうか疑問に思っています。
誰かがこれをしましたか?それとも他の方法でこれを行いましたか?
sql - P6Spyより優れたものはありますか?
P6Spy を使用して、アーキテクチャ内のデータベース ステートメントを傍受することを計画しています。しかし、P6Spy の Web サイトで、ソフトウェアの最後のリリースが 2003 年にさかのぼることに気付きました。より良いものはありますか、それとも P6Spy に固執する必要がありますか?
jdbc - Websphere6.1でのSQLロギング
アプリケーションを使用しているときに、アプリケーションで起動されたSQLステートメットをログに記録するツールを探しています。
p6spyを見つけました。しかし、それには問題があります。XAデータソースと互換性がないようです。
p6spyをWebsphere6.1で動作させる方法はありますか、それともp6spyに代わるものはありますか?
また、PreparedStatmentオブジェクトをインターセプトしてSQLをダンプするAspectJコードを誰かが持っている場合、それも素晴らしいことです。
filtering - P6SPY によるフィルタリング
「挿入/削除/更新」のみをログに記録し、「選択」SQLステートメントをログに記録しないように、p6spyでフィルターを設定する方法はありますか?
p6spy のドキュメント: 「P6Spy を使用すると、特定のテーブルまたは特定のステートメント タイプを監視できます」
彼らが挙げた例は次のとおりです。
orders テーブルを除くすべての select ステートメントのキャプチャを示す例を次に示します。
だから私は、挿入、削除、更新、および選択を除外する方法があるに違いないと思った...したがって、次のようにプロパティファイルを準備しました。
しかし、それはうまくいかないようです。何か提案がある人はいますか??
java - 休止状態の p6spy の問題
私は hibernate がフードの下で何をしているのかを把握しようとしています。また、p6spy を mysql jdbc ドライバーのプロキシとして使用しているので、データベースに実際に何が行われているのかを確認できます。ただし、p6spy からの出力には少し混乱しています。光に感謝します。
問題はこれです。クラス Test1 の 2 つの新しいオブジェクト、つまり test1a と test1b を作成しています。ログの出力は次のとおりです。
おそらく jdbc addBatch API への呼び出しからの 2 つの「バッチ」ステートメントが表示されますが、「1274973057267|2|1|ステートメント」はそこで何をしているのですか? 2番目の挿入が繰り返されているように見えますが、そうではないことを知っているか、データベースに2行ではなく3行、または少なくともエラーが表示されます。
2 番目の挿入ステートメントが繰り返されるのはなぜですか?
spy.properties で「バッチ」を除外すると、この奇妙で不正な行しか表示されません。
イルミネーションをありがとう!
jdbc - P6spy は hsql jdbc ドライバーをスパイしません
hsqldb データベースへの jdbc 接続をスパイしようとすると、機能しません。org.hsqldb.jdbcDriver が登録解除されていないようです。
hibernate - 休止状態のアプリケーションで P6Spy を使用してデータベースへの JDBC ステートメントをインターセプトする
私は休止状態のコンソール アプリケーションを開発しており、この記事http://www.mkyong.com/hibernate/how-to-display-hibernate-sql-parameter-values-solution/を参照して P6Spy をセットアップし、何が何であるかを確認します。 Hibernate によって生成された SQL の「(?)」の実際の値。
アプリケーションの起動中に P6Spy によって出力される情報/デバッグ メッセージを確認できるので、セットアップは正常に機能するはずです。ただし、その後、P6Spy は JDBC ステートメントをインターセプトできないようです。hibernate によって生成されたログ (例: Hibernate: insert into Module (projectName, moduleName, projectId) values (?, ?, ?)
) から、JDBC ステートメントが既にデータベースに送信されていることを確認できます。
以下は私の設定です:
hibernate.cfg.xml
- P6Spy ドライバーを使用するように指定済み:
<property name="hibernate.connection.driver_class">com.p6spy.engine.spy.P6SpyDriver</property>
- すでに hibernate.show_sql プロパティをオンにしています:
<property name="hibernate.show_sql">true</property>
スパイのプロパティ
- 実際のデータベース JDBC driver を使用するように既に変更されており、フィルターは false に設定されており、includecategories は既に明示的に何かをログに記録するように設定されています。
重要な設定を見逃していませんか??
sql - JDBC によって生成された SQL ステートメントを変更する
jdbc ドライバーによって生成された SQL ステートメントを傍受して変更する最も簡単な方法は何ですか? P6Spyのようなものがあります。Google からの情報によると、データベース ステートメントをインターセプトし、必要に応じて変更するアプリケーションをサポートするオープン ソース フレームワーク。しかし、ソフトウェアの最後のリリースは 2003 年にさかのぼり、ウェブサイトはダウンしており、wiki やチュートリアルなどはありません。他に選択肢はありますか?
助けてくれてありがとう
p6spy - P6SPY はどのように機能しますか?
質問のほとんどすべて。p6spy を hibernate に関連して発見したところです。これは実際の SQL クエリを表示するのに非常に便利ですが、その仕組みについてはかなり困惑しています。
それで、それはどのように機能しますか?
oracle - p6spy が Oracle の正しい空間クエリを表示しないのはなぜですか?
すべての SQL ステートメントを表示するように p6spy を設定しました。ただし、空間クエリの正しい SQL ステートメントは表示されません。以下に一例を示します。
空間オブジェクトは「oracle.sql.STRUCT@3848d632」として表されます。正しく表示する方法を知っていますか?
ありがとう、