私は@ BindBeanを使用してSQLクエリにバインドしています。 "org.skife.jdbi.v2"を使って見ることができます:TRACEは "?"私はすべてを印刷することができますか?Dropwizardアプリケーションのクエリとパラメータを記録/印刷するにはどうすればよいですか?
1
A
答えて
0
SqlCustomizerを記述してsqlを記録できます。
import org.skife.jdbi.v2.StatementContext;
import org.skife.jdbi.v2.sqlobject.SqlStatementCustomizer;
import org.skife.jdbi.v2.sqlobject.SqlStatementCustomizerFactory;
import org.skife.jdbi.v2.sqlobject.SqlStatementCustomizingAnnotation;
import org.skife.jdbi.v2.tweak.StatementCustomizer;
import java.lang.annotation.*;
import java.lang.reflect.Method;
import java.sql.PreparedStatement;
import java.sql.SQLException;
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
@SqlStatementCustomizingAnnotation(LogSqlFactory.Factory.class)
public @interface LogSqlFactory {
static class Factory implements SqlStatementCustomizerFactory {
@Override
public SqlStatementCustomizer createForMethod(Annotation annotation, Class sqlObjectType, Method method) {
return null;
}
@Override
public SqlStatementCustomizer createForType(Annotation annotation, Class sqlObjectType) {
return q -> q.addStatementCustomizer(new StatementCustomizer() {
@Override
public void beforeExecution(PreparedStatement stmt, StatementContext ctx) throws SQLException {
System.out.println(stmt.toString());
}
@Override
public void afterExecution(PreparedStatement stmt, StatementContext ctx) throws SQLException { }
@Override
public void cleanup(StatementContext ctx) throws SQLException { }
});
}
@Override
public SqlStatementCustomizer createForParameter(Annotation annotation, Class sqlObjectType, Method method, Object arg) {
return null;
}
}
}
この注釈を含めてSqlObjectで使用してください。ロギング用のカスタムロガー、そしてbeforeExecutionメソッドを使用している場合は、あなたのケースでは、このよう
@LogSqlFactory
public inteface myinteface{
@SqlQuery("select :c1 from tablename where cond = :cd")
String returnMeValue(@Bind("c1") String c1, @Bind("cd") Integer cd);
}
をこのアノテーションを使用します。
0
DropwizardのDBIFactoryを使用していますか?この方法でログに記録するようにJDBIを設定します。
関連する問題
- 1. WindowControllerを印刷操作の最初のレスポンダに登録するにはどうすればよいですか?
- 2. macosxに印刷する:nstableviewを印刷するにはどうすればよいですか
- 3. 特定の範囲内でユニコード記号を印刷するにはどうすればよいですか?
- 4. 印刷ダイアログボックスでリストビュー印刷でアイテムを選択するにはどうすればよいですか?
- 5. QStringListModelのコンテンツを印刷するにはどうすればよいですか?
- 6. テキストのみを印刷するにはどうすればよいですか?
- 7. IPアドレスを印刷するにはどうすればよいのですか
- 8. タプルのベクトルを印刷するにはどうすればよいですか?
- 9. pidを印刷せずに「$$」を印刷するにはどうすればよいですか?
- 10. ハイパーリンクのクリックを記録するにはどうすればよいですか?
- 11. AutoHotkeyでアレイを印刷するにはどうすればよいですか?
- 12. アテナソフトウェアでバーコードを印刷するにはどうすればよいですか?
- 13. QtでQWidgetを印刷するにはどうすればよいですか?
- 14. アクセサーメソッドをメインプログラムに印刷するにはどうすればよいですか?
- 15. リストをリストに印刷するにはどうすればよいですか?
- 16. 印刷プレビューから印刷設定を提示するにはどうすればよいですか?
- 17. Scalaの繰り返しパラメータからCSVラインを印刷するにはどうすればよいですか?
- 18. Dartでコンソールに印刷するにはどうすればよいですか?
- 19. アセンブリでコンソールに印刷するにはどうすればよいですか?
- 20. 指数表記で大きな数値を印刷するにはどうすればよいですか?
- 21. 埋め込みElasticSearchですべてのクエリを記録するにはどうすればよいですか?
- 22. SQL Serverの準備文の中でクエリを印刷するにはどうすればよいですか?
- 23. フォームを印刷するにはどうすればよいですか?
- 24. Crystal Reportsを印刷するにはどうすればよいですか?
- 25. C++オブジェクトを印刷するにはどうすればよいですか?
- 26. ストアドプロシージャコールを記録するにはどうすればよいですか?
- 27. 作成アクションを記録するにはどうすればよいですか?
- 28. jt400で印刷するにはどうすればよいですか?
- 29. 平方根記号を印刷するにはどうすればよいですか?
- 30. MySQLで生のクエリだけを記録するにはどうすればよいですか?
私のためには機能しませんでした –