一直很痛苦的一件事是当您拥有 PreparedStatement 而不是查询本身时记录 SQL (JDBC) 错误。
您总是会收到以下消息:
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 = ?]
当然,我可以编写一个辅助方法来检索值并用实际值解析/替换问号(如果我没有得到这个问题的结果,可能会走这条路),但我只是想知道是否这个问题之前已经被其他人解决了,和/或是否有任何通用的日志记录助手可以自动为我解决这个问题。
在几个答案后编辑:
到目前为止提供的库似乎适合记录调试语句,这无疑是有用的。但是,我正在寻找一种方法来获取 PreparedStatement 本身(不是某个子类)并在发生错误时记录其 SQL 语句。我不想使用 PreparedStatement 的替代实现来部署生产应用程序。
我想我正在寻找实用程序类,而不是 PreparedStatement 专业化。
谢谢!