Перехват запросов к базе данных - PullRequest
3 голосов
/ 28 марта 2011

Итак, я пытаюсь перехватить звонки в базу данных. Прямо сейчас у меня есть Java-программа, которая слушает уведомления (звонки, сделанные различными программами). Я пытаюсь расширить это для анализа запросов, сделанных одной из этих программ к базе данных, которая использует Hibernate ORM.

Я смотрю на Hibernate Interceptor, и это кажется довольно интересным. Как я могу интегрировать Interceptor в мою программу? Я не уверен, как я могу использовать его для подключения к другим программам для прослушивания вызовов. Или Слушатель будет лучшим выбором?

Спасибо, Гарри

Ответы [ 2 ]

3 голосов
/ 28 марта 2011

Возможно, вы ищете прокси-драйвер JDBC. Они оборачивают обычный драйвер JDBC и регистрируют происходящее.

Один пример: log4jdbc , я уверен, что есть другие.

Хорошая вещь в том, что вам не нужно менять свою программу, просто имя драйвера JDBC, который она использует.

2 голосов
/ 28 марта 2011

Чтобы интегрировать перехватчик Hibernate в вашу программу, вы должны выполнить следующие шаги:

  1. Создайте класс, расширяющий EmptyInterceptor в hibernate.

  2. Реализуйте методы, соответствующие вашему требованию.

  3. Установите его в Конфигурацию, как

    Конфигурация cfg = новая конфигурация ();

    cfg.setInterceptor (новый YourInterceptor ());

...