Intercetta le dichiarazioni JDBC al database utilizzando P6SPY in un'applicazione ibernazione

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

  •  15-11-2019
  •  | 
  •  

Domanda

Sto sviluppando un'applicazione per console ibernate e consulta questo articolo http://www.mkyong.com/hirnate/How-to-display-HibiRNate-sql-Parameter-Values-solution/ per configurare il P6SPY per vedere qual è il valore attuale del "(?)" dello SQL generato dall'Iberto.

L'installazione dovrebbe funzionare bene come posso vedere i messaggi informativi / debug output di P6SPY durante l'avvio dell'applicazione. Tuttavia, dopo che, P6SPY sembra che non possa intercettare le dichiarazioni JDBC. Dal registro generato da Hibernate (ad esempio: Hibernate: insert into Module (projectName, moduleName, projectId) values (?, ?, ?)), può essere sicuro che le istruzioni JDBC siano già inviate al database.

Quanto segue è la mia impostazione:

hibernate.cfg.xml

    .
  • già specificato per utilizzare il P6SPY Driver: <property name="hibernate.connection.driver_class">com.p6spy.engine.spy.P6SpyDriver</property>
  • Già acceso il Hibernate.Show_SQL Proprietà: <property name="hibernate.show_sql">true</property>

    spy.properties

      .
    • già cambiato per usare il mio attuale Database Driver JDBC, filtro impostato su Falso, includeCategorie già impostato esplicitamente per registrare qualsiasi cosa.
      .
      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
      
      .

      Mi manca qualsiasi impostazione importante ??

È stato utile?

Soluzione 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.

Altri suggerimenti

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top