Перехватить операторы JDBC к базе данных с использованием P6SPY в приложении с гибернацией

StackOverflow https://stackoverflow.com/questions/5044804

  •  15-11-2019
  •  | 
  •  

Вопрос

Я разрабатываю приложение Hibernate Console и обратитесь к этой статье http://www.mkyong.com/hibernate/how-to-display-ibernate-sql-parameter-values-sql-parameter-values-solution/ для настройки P6SPY для того, чтобы увидеть, что является фактическим значением из «(?)» SQL, генерируемого гибернатом.

Настройка должна работать нормально, так как я могу видеть информацию об отладке, выводимые на P6SPY во время приложения запускается. Однако после этого P6SPY кажется, что он не может перехватить любые заявления JDBC. Из журнала, генерируемого Hibernate (например: Hibernate: insert into Module (projectName, moduleName, projectId) values (?, ?, ?)), может быть уверен, что операторы JDBC уже отправляются в базу данных.

Ниже приведены мою настройку:

hibernate.cfg.xml

    .
  • уже указано, чтобы использовать P6SPY Водитель: <property name="hibernate.connection.driver_class">com.p6spy.engine.spy.P6SpyDriver</property>
  • уже включено на Hibernate.show_sql Недвижимость: <property name="hibernate.show_sql">true</property>

    <Сильные> Spy.Properties

      .
    • уже изменилось, чтобы использовать мой актуальный Драйвер базы данных JDBC, фильтр установлен на False, IncludeCategory уже явно настроен для журнала чего-либо.
      module.log=com.p6spy.engine.logging.P6LogFactory
      realdriver=oracle.jdbc.driver.OracleDriver
      filter=false
      dateformat=yyyy.MM.dd HH:mm:ss
      excludecategories=
      includecategories=error, info, batch, debug,statement,commit,rollback,result
      appender=com.p6spy.engine.logging.appender.StdoutLogger
      
      .

      Я скучаю по какой-либо важной настройке ??

Это было полезно?

Решение 3

Finally , I give up P6Spy as it is the old library which the latest version is back to 2003. I resort to use another similar free open source called log4jdbc to intercept the JDBC statements , see this for more info if you are interested.

Другие советы

I've never used P6Spy, but you can get the bind variables to output to your log. Try putting this in your log4j.properties or xml file.

log4j.category.org.hibernate.type=DEBUG, CONSOLE

The usual cause for this type of problem is that the JDBC driver is loaded before the P6SpyDriver. You can get around this problem by setting deregisterdrivers=true in spy.properties.

BTW - This issue was fixed in 2.0-alpha-1.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top