Единственное, что всегда было проблемой, - регистрировать ошибки SQL (JDBC), когда у вас есть PreparedStatement вместо самого запроса.
Вы всегда получаете сообщения типа:
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.
Спасибо!