Je travaille sur un projet web dynamique et utilise PreparedStatement pour exécuter les requêtes SQL sur la base de données DB2. Comment puis-je recevoir la requête SQL complète qui va être exécutée sur le serveur DB2 de la console?Comment obtenir la requête complète qu'un PreparedStatement est sur le point d'exécuter dans DB2?
Répondre
Si vous connaissez les options de débogage dans Eclipse. Vous pouvez essayer ce qui suit:
Définir un point d'arrêt à
ResultSet resultSet = statement.executeQuery();
clic droit de votre application, sélectionnez
Java Application
direDebug As
(ou quel que soit applicable dans votre cas par exemple peut être SpringBoot App etc.Effectuez l'étape qui vous mène au code mentionné dans la question
Si vous cochez
Variables tab
dansDebug Perspective
d'Eclipse, vous trouverez des variables telles quemyQuery
,stmt
(selon votre code)Tout ce que vous voyez comme valeur de
stmt
serait la pleine requête SQL dont vous avez besoin.
De plus, si vous ne voulez pas continuer à regarder cette variable toujours, vous pouvez essayer Java Logging
et imprimer votre requête SQL complète dans les journaux.
dépend du pilote, cela peut ou peut ne pas fonctionner. essayez 'stmt.toString()'. il n'y a pas de support natif pour cela. 'PreparedStatement' est une interface et ne nécessite pas l'implémentation d'une telle fonctionnalité. – user2914191
Si vous ne réussissez pas à java, discutez avec votre administrateur de base de données qui peut demander à DB2 de rapporter le code SQL dynamique et les valeurs des variables de marqueurs de paramètres. Le mécanisme utilisé par le DBA dépendra du système d'exploitation sur lequel le serveur DB2 fonctionne (Z/OS, i-series, Linux/Unix/Windows) ainsi que de la version DB2. – mao