Maison >base de données >tutoriel mysql >Comment puis-je enregistrer les requêtes Hibernate SQL avec leurs valeurs de paramètres réelles ?

Comment puis-je enregistrer les requêtes Hibernate SQL avec leurs valeurs de paramètres réelles ?

Linda Hamilton
Linda Hamiltonoriginal
2025-01-22 22:58:12267parcourir

How can I log Hibernate SQL queries with their actual parameter values?

Imprimer la requête contenant les valeurs des paramètres dans Hibernate

Lors de l'utilisation d'Hibernate, il est souvent nécessaire de visualiser la requête SQL réellement exécutée, y compris les valeurs des paramètres. Le comportement par défaut d'Hibernate consiste à enregistrer les requêtes SQL en utilisant des points d'interrogation (?) comme espaces réservés pour les valeurs des paramètres.

Est-il possible d'imprimer une requête contenant des valeurs réelles à l'aide de l'API Hibernate ?

Non, Hibernate ne fournit pas d'API pour imprimer les requêtes SQL contenant des valeurs réelles.

Comment imprimer une requête contenant des valeurs réelles

Pour que cette fonctionnalité fonctionne, la journalisation doit être activée pour les catégories suivantes :

<code>org.hibernate.SQL - 设置为debug以记录所有SQL DML语句的执行情况
org.hibernate.type - 设置为trace以记录所有JDBC参数</code>

Exemple de configuration Log4j :

<code># 记录SQL语句
log4j.logger.org.hibernate.SQL=debug

# 记录传递给查询的JDBC参数
log4j.logger.org.hibernate.type=trace</code>

La première configuration est équivalente à l'ancienne propriété d'Hibernate, hibernate.show_sql=true, et la deuxième configuration imprime les paramètres de liaison et d'autres informations.

Alternatives

Si la journalisation Hibernate est insuffisante, vous pouvez utiliser un pilote proxy JDBC tel que P6Spy pour capturer et enregistrer les requêtes SQL contenant des valeurs de paramètres.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn