拦截对数据库的查询

时间:2011-03-28 07:37:12

标签: java database hibernate interceptor

所以我试图拦截对数据库的调用。现在我有一个java程序,它监听通知(由各种程序调用)。我正在尝试扩展它以分析其中一个程序对使用Hibernate ORM的数据库进行的查询。

我正在看Hibernate Interceptor,这看起来很有趣。我如何将Interceptor集成到我的程序中?我不知道如何使用它来连接其他程序来监听电话。或者听众会是一个更好的选择吗?

谢谢,哈利

2 个答案:

答案 0 :(得分:3)

您可能正在寻找代理JDBC驱动程序。这些包装了一个普通的JDBC驱动程序并记录正在发生的事情。

一个例子是log4jdbc,我确信还有其他人。

关于这些的好处是您不需要更改程序,只需更改它使用的JDBC驱动程序的名称。

答案 1 :(得分:2)

要在程序中集成Hibernate拦截器,您必须执行以下步骤:

  1. 创建一个扩展hibernate的EmptyInterceptor的类。

  2. 实施与您的要求相关的方法。

  3. 将其设置为配置,如

    配置cfg = new Configuration();

    cfg.setInterceptor(new YourInterceptor());