Maison >Java >javaDidacticiel >Comment puis-je imprimer des requêtes SQL avec des valeurs de paramètres en veille prolongée ?

Comment puis-je imprimer des requêtes SQL avec des valeurs de paramètres en veille prolongée ?

DDD
DDDoriginal
2025-01-03 16:18:39280parcourir

How Can I Print SQL Queries with Parameter Values in Hibernate?

Impression de requêtes SQL avec des valeurs de paramètres dans Hibernate

Introduction :

Lors de l'utilisation d'Hibernate, il peut être utile d'imprimer les requêtes générées, ainsi que les valeurs réelles des paramètres. Cela peut être utile à des fins de débogage ou pour comprendre les caractéristiques de performances d'une requête particulière.

Est-ce possible avec l'API Hibernate ?

Oui, il est possible de imprimer des requêtes avec des valeurs de paramètres à l'aide de l'API Hibernate. Pour ce faire, vous devez activer la journalisation pour les catégories suivantes :

  • org.hibernate.SQL : définir sur debug pour enregistrer toutes les instructions SQL DML au fur et à mesure de leur exécution.
  • org .hibernate.type : défini sur trace pour enregistrer tous les paramètres JDBC.

Configuration Exemple :

Une configuration log4j qui active la journalisation pour ces catégories pourrait ressembler à ceci :

# logs the SQL statements
log4j.logger.org.hibernate.SQL=debug 

# Logs the JDBC parameters passed to a query
log4j.logger.org.hibernate.type=trace 

La première option (hibernate.show_sql) est l'équivalent hérité de log4j.logger .org.hibernate.SQL=debug, tandis que la deuxième option imprime les paramètres liés avec d'autres informations.

Solution alternative sans Hibernate :

Si vous préférez ne pas utiliser l'API Hibernate pour imprimer des requêtes avec des valeurs de paramètres, vous pouvez utiliser un pilote proxy JDBC comme P6Spy. Ce pilote agit comme un proxy entre votre application et la base de données, et il enregistre toutes les instructions et paramètres JDBC qui le traversent.

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