Abfangen der JDBC-Anweisungen an die Datenbank mit P6Spy in einer hibernate-Anwendung
Ich entwickle eine hibernate console application und finden Sie in diesem Artikel http://www.mkyong.com/hibernate/how-to-display-hibernate-sql-parameter-values-solution/, um den setup-P6Spy, um zu sehen, was ist der tatsächliche Wert der "(?)" der generierte SQL von der Hibernate.
Setup sollte funktionieren wie ich sehen kann, info/debug-Meldungen Ausgabe von P6Spy während die Anwendung startet. Aber danach P6Spy scheint, dass es nicht abfangen können alle JDBC-Anweisungen. Aus dem Protokoll generiert durch hibernate (zB: Hibernate: insert into Module (projectName, moduleName, projectId) values (?, ?, ?)
), Sie können sicher sein, dass die JDBC-Anweisungen sind bereits an die Datenbank gesendet.
Das folgende ist meine Einstellung:
hibernate.cfg.xml
- Bereits angegebenen zu verwenden, die P6Spy
Fahrer :<property
name="hibernate.connection.driver_class">com.p6spy.engine.spy.P6SpyDriver</property> - Bereits eingeschaltet
hibernate.show_sql Eigenschaft :
<property
name="hibernate.show_sql">true</property>
spy.Eigenschaften
- Bereits geändert, meine eigentliche
Datenbank JDBC-Treiber , filter-set zu
falsch , includecategories schon
explizit auf log nichts.
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
Vermisse ich jede wichtige Einstellung ??
Du musst angemeldet sein, um einen Kommentar abzugeben.
Habe ich noch nie genutzt P6Spy, aber kann man die bind-Variablen die Ausgabe in deinem log. Versuchen Sie, diese in Ihrem log4j.properties-oder xml-Datei.
log4j.Kategorie.org.hibernate.type=DEBUG, KONSOLE
Die übliche Ursache für diese Art von problem ist, dass der JDBC-Treiber geladen wird, bevor die P6SpyDriver. Sie können dieses problem umgehen, indem Sie die Einstellung deregisterdrivers=true in-Spion.Eigenschaften.
BTW - Das Problem wurde behoben, 2.0-alpha-1.
Schließlich gebe ich auf
P6Spy
als es ist die alte Bibliothek welche die neueste version ist 2003 zurück. Ich resort, eine andere zu verwenden ähnlich wie freie open-source-genanntlog4jdbc
zum abfangen des JDBC-Anweisungen finden Sie unter diese für weitere Informationen, wenn Sie interessiert sind.