Maison >base de données >tutoriel mysql >Comment enregistrer des requêtes SQL détaillées avec des valeurs de paramètres dans Hibernate ?

Comment enregistrer des requêtes SQL détaillées avec des valeurs de paramètres dans Hibernate ?

DDD
DDDoriginal
2025-01-22 22:32:10987parcourir

How to Log Detailed SQL Queries with Parameter Values in Hibernate?

Imprimer le journal SQL détaillé contenant les valeurs réelles des paramètres

Lors de l'utilisation d'Hibernate, il est souvent utile de visualiser les requêtes SQL exécutées, notamment lors du débogage ou de l'optimisation des performances. Cependant, par défaut, Hibernate enregistre les instructions SQL en utilisant des espaces réservés (points d'interrogation) au lieu des valeurs réelles des paramètres de requête.

Configuration du journal de mise en veille prolongée

Si vous devez imprimer des requêtes contenant des valeurs réelles, vous pouvez configurer les catégories de journalisation suivantes :

  • org.hibernate.SQL : défini sur debug pour enregistrer toutes les instructions SQL DML exécutées.
  • org.hibernate.type : défini sur trace pour enregistrer tous les paramètres JDBC.

Par exemple, en utilisant la configuration log4j :

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

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

Le premier paramètre (org.hibernate.SQL) équivaut à définir la propriété héritée hibernate.show_sql=true. Le deuxième paramètre (org.hibernate.type) imprime les paramètres de liaison et d'autres informations.

Solution sans mise en veille prolongée

Une autre façon d'imprimer des requêtes contenant des valeurs réelles consiste à utiliser un pilote proxy JDBC tel que P6Spy. Ce pilote intercepte toutes les instructions SQL et enregistre les informations avec des informations détaillées, y compris les valeurs réelles des paramètres de requête.

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