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