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!