Consignation des états préparés dans Java

Une chose qui a toujours été une douleur pour se connecter à SQL (JDBC) des erreurs lorsque vous avez un PreparedStatement au lieu de la requête elle-même.

Vous vous retrouvez toujours avec des messages comme:

2008-10-20 09:19:48,114 ERROR LoggingQueueConsumer-52 [Logger.error:168] Error 
executing SQL: [INSERT INTO private_rooms_bans (room_id, name, user_id, msisdn, 
nickname) VALUES (?, ?, ?, ?, ?) ON DUPLICATE KEY UPDATE room_id = ?, name = ?, 
user_id = ?, msisdn = ?, nickname = ?]

Bien sûr, je pourrais écrire une méthode d'assistance pour la récupération des valeurs et de l'analyse/remplacer les points d'interrogation avec des valeurs réelles (et ce sera probablement aller dans cette voie si je ne suis pas d'obtenir un résultat de cette question), mais je voulais juste savoir si ce problème a été résolu avant par quelqu'un d'autre et/ou si est-il un générique journalisation helper qui permettrait de le faire automatiquement pour moi.

Édité après quelques réponses:

Les bibliothèques fournies jusqu'à présent semble être adapté à l'enregistrement des déclarations à des fins de débogage, ce qui sans aucun doute est utile. Cependant, je suis à la recherche d'un moyen de prendre un PreparedStatement lui-même (pas une sous-classe) et la journalisation de son instruction SQL à chaque fois qu'une erreur se produit. Je ne voudrais pas déployer une production app avec une autre implémentation de PreparedStatement.

Je crois que je suis à la recherche d'un utilitaire de la classe, pas un PreparedStatement de spécialisation.

Merci!

source d'informationauteur kolrie