- - PR -
iBATISのログ出力の整形について
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2009-02-02 22:17
こんばんは。
現在、iBATISを使用してアプリを作っています。 SQLの確認用に、Log4jでのログ出力を行っていますが、 ログ出力のされたかが、いまいちなので困っています。 log4jでの出力は以下のような感じです。 === java.sql.PreparedStatement ・・・ INSERT INTO TABLE values (?, ?) java.sql.PreparedStatement ・・・ Parameters:{data1, data2} === できれば、ログをコピペして、SQLを発行できるように、以下のように出力させたいのですが、実際できるのでしょうか? 出力させたいログ形式 == java.sql.PreparedStatement ・・・ INSERT INTO TABLE values ('data1', 'data2') === |
|
投稿日時: 2009-02-02 23:25
フレームワーク部でおこなっているため、設定だけではできません。
DeCompile > Log記述方式変更 > Compile で作り直してください。 |
|
投稿日時: 2009-02-03 11:12
私なら
そのログファイルを読込んで SQL文に整形するツールを作成します。 |
|
投稿日時: 2009-02-03 12:20
DBによりますが、そもそも論をいうと、
PreparedStatementの殆どの実装は、 INSERT INTO TABLE values (?, ?) というプレペア命令を送ってから、 後で値だけ別で送り出しています。 PreparedStatementがパラメータの文字のエスケープをして、 SQLを作成して送ってくれているわけでは有りません。 RDBMSによって文字のエスケープ方式も違いますし、 それをドライバなどから機械的に取得して処理する方法もありません。 ですので実行可能なSQLを出力するには、自前で実装するしか有りません。 ちなみに、この話はJDBCだけの話ではありません。 他の言語でも似たような話かと思います。 その辺の仕組みを熟知すれば、 「いまいち」から「充分」になるのではないでしょうか。 |
1