Druckabfrage mit Parameterwerten im Ruhezustand
Bei der Verwendung von Hibernate ist es häufig erforderlich, die tatsächlich ausgeführte SQL-Abfrage einschließlich der Parameterwerte anzuzeigen. Das Standardverhalten von Hibernate besteht darin, SQL-Abfragen mit Fragezeichen (?) als Platzhalter für Parameterwerte zu protokollieren.
Ist es möglich, eine Abfrage mit tatsächlichen Werten mithilfe der Hibernate-API zu drucken?
Nein, Hibernate bietet keine API zum Drucken von SQL-Abfragen mit tatsächlichen Werten.
So drucken Sie eine Abfrage mit tatsächlichen Werten
Damit diese Funktion funktioniert, muss die Protokollierung für die folgenden Kategorien aktiviert werden:
<code>org.hibernate.SQL - 设置为debug以记录所有SQL DML语句的执行情况 org.hibernate.type - 设置为trace以记录所有JDBC参数</code>
Log4j-Konfigurationsbeispiel:
<code># 记录SQL语句 log4j.logger.org.hibernate.SQL=debug # 记录传递给查询的JDBC参数 log4j.logger.org.hibernate.type=trace</code>
Die erste Konfiguration entspricht der alten Eigenschaft hibernate.show_sql=true von Hibernate, und die zweite Konfiguration druckt Bindungsparameter und andere Informationen.
Alternativen
Wenn die Protokollierung im Ruhezustand nicht ausreicht, können Sie einen JDBC-Proxy-Treiber wie P6Spy verwenden, um SQL-Abfragen mit Parameterwerten zu erfassen und zu protokollieren.
Das obige ist der detaillierte Inhalt vonWie kann ich Hibernate-SQL-Abfragen mit ihren tatsächlichen Parameterwerten protokollieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!