Heim >Datenbank >MySQL-Tutorial >Wie protokolliere ich detaillierte SQL-Abfragen mit Parameterwerten im Ruhezustand?
Bei der Verwendung von Hibernate ist es oft nützlich, die ausgeführten SQL-Abfragen anzuzeigen, insbesondere beim Debuggen oder Optimieren der Leistung. Standardmäßig protokolliert Hibernate jedoch SQL-Anweisungen mithilfe von Platzhaltern (Fragezeichen) anstelle der tatsächlichen Werte der Abfrageparameter.
Wenn Sie Abfragen drucken müssen, die tatsächliche Werte enthalten, können Sie die folgenden Protokollierungskategorien konfigurieren:
Zum Beispiel mit der log4j-Konfiguration:
<code># 记录SQL语句 log4j.logger.org.hibernate.SQL=debug # 记录传递给查询的JDBC参数 log4j.logger.org.hibernate.type=trace </code>
Die erste Einstellung (org.hibernate.SQL) entspricht der Einstellung der Legacy-Eigenschaft hibernate.show_sql=true. Die zweite Einstellung (org.hibernate.type) druckt Bindungsparameter und andere Informationen.
Eine andere Möglichkeit, Abfragen mit tatsächlichen Werten zu drucken, ist die Verwendung eines JDBC-Proxy-Treibers wie P6Spy. Dieser Treiber fängt alle SQL-Anweisungen ab und protokolliert Informationen mit detaillierten Informationen, einschließlich der tatsächlichen Werte der Abfrageparameter.
Das obige ist der detaillierte Inhalt vonWie protokolliere ich detaillierte SQL-Abfragen mit Parameterwerten im Ruhezustand?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!