2016-10-05 13 views
2

私はdbコールをログに記録しようとするメソッドを書いています。問い合わせの後にconnect()メソッドを呼び出すメソッドがたくさんあり、cleanUp()メソッドを終了するメソッドがあります。すべての場所を変更する必要はありません。だから、シーケンスは、このようなものです:このシーケンスを使用していますので、どのように私は、何とかクリーンアップで()の多くの方法がありますJavaの接続からクエリ文字列を取得するには?

Connection con = ... 
    connect(); 
    s = con.createStatement(); 
    ResultSet rs = s.executeQuery(" select * from xyz "); 
    rs.next(); 
    cleanUp(); 

、[このケースでは:xyzから*選択] SQLクエリ文字列を取得しますからクエリを実行するすべてのメソッドは、 "con"からその情報を取得する方法がありますが、conオブジェクトは実行したクエリを知っていますか?

+1

適切なJDBCロギングフレームワークを使用できますか? –

+0

[この記事](https://vladmihalcea.com/2016/05/03/the-best-way-of-logging-jdbc-statements/)では、データソースプロキシを介してステートメントを監視する方法の例を示します。 Oracleを使用している場合、ドライバには[内蔵診断機能](https://docs.oracle.com/cd/B28359_01/java.111/b31224/diagnose.htm)もあります。 –

+0

私はこの答えが一番好きです、それを私の選択として選ぶ方法は_ _ ^?! – Frank

答えて

1

あなたはStatement.toString()からMySQLの中でそれを得ることができます。

関連する問題