Maison >Java >javaDidacticiel >Comment puis-je récupérer la requête construite à partir d'un PreparedStatement en Java ?

Comment puis-je récupérer la requête construite à partir d'un PreparedStatement en Java ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-06 04:34:02841parcourir

How Can I Retrieve the Constructed Query from a PreparedStatement in Java?

Récupération de la requête construite à partir d'un PreparedStatement

Lorsque vous travaillez avec des instructions préparées en Java à l'aide de java.sql.PreparedStatement, il devient essentiel de déboguer et vérifiez la requête réelle en cours d'exécution. Cependant, il n'existe aucune méthode inhérente à l'API JDBC pour récupérer directement la requête construite.

Solution

Heureusement, des pilotes JDBC spécifiques peuvent fournir une solution de contournement via PreparedStatement# méthode toString().

Vérifiez auprès de l'implémentation du pilote

Les pilotes tels que PostgreSQL 8.x et MySQL 5.x, les pilotes JDBC peuvent renvoyer la requête SQL complète lors de l'appel PreparedStatement#toString(). Pour utiliser cette fonctionnalité :

<code class="java">System.out.println(preparedStatement);</code>

Option alternative

Si le pilote JDBC ne dispose pas de cette fonctionnalité, envisagez d'utiliser un wrapper d'instructions qui intercepte tous les appels aux méthodes setXxx() et construit une chaîne SQL lorsque toString() est appelé. Une bibliothèque comme P6Spy offre de telles fonctionnalités.

Implémentation de la demande

Dans les cas où le pilote ne prend pas en charge la récupération de la requête, soumettez une demande de fonctionnalité à l'équipe de développement. Le comportement toString() peut être implémenté pour donner accès à la requête construite à des fins de débogage.

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