| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java: Общие вопросы > Как просмотреть SQL код в PreparedStatement? |
| Автор: NosfBlazE 9.9.2011, 08:13 | ||
| Здравствуйте. На java начал писать недавно, поэтому задам детский вопрос, ответ на который в инете найти так и не смог. Вот кусок кода
Здесь Logger - класс для ведения логов, просто вывод в данном примере. [INFO] SQL: SELECT ID_PERIODICAL FROM PERIODICAL WHERE CODE = ? Так вот, как достать из psGetIdPer sql команду, полученную после подстановки вместо '?' конкретного значения? То есть, чтобы в логах писалось не CODE = ?, как сейчас, а CODE = 'код'. |
| Автор: aleksandy 9.9.2011, 09:25 |
| В общем случае никак: все зависит от конкретного драйвера. Можно попытаться вытянуть через рефлексию, но не факт, что драйвер заменяет "?" на значения. Думаю, он может отправлять шаблон запроса и параметры отдельно. |
| Автор: NosfBlazE 9.9.2011, 09:58 | ||
Ах да, совсем забыл, извините. Драйвер
Очень странно, что нет соответствующего метода среди стандартных. оО Поскольку данные берутся из списка, то желательно отображать в логе формирующийся при этом sql. Спасибо за быстрый ответ, но не хотелось бы прибегать к накручиванию сложных вещей в коде ради этого. Если нет какого-то простого способа, то придется обойтись без лога. ( |
| Автор: Farmazon 9.9.2011, 12:41 |
| включи подробные логи в бд 0_О Добавлено через 41 секунду может твоя бд умеет говорить, какими запросами её кормят... |
| Автор: NosfBlazE 9.9.2011, 17:36 |
| Farmazon, в бд само собой логи ведутся. Но бд одна на всех, а приложение - всего лишь небольшая часть всей системы. Поэтому при отладке желательно видеть эти логи отдельно. Спасибо всем за ответы, хотя бы разобрался в общей сути возникшей проблемы. |
| Автор: Ares4322 10.9.2011, 16:24 |
| А prepStmt.toString() не катит? |
| Автор: LSD 10.9.2011, 17:48 |
JDBC стандарт не декларирует этот метод, и потому как его реализовывать (и реализовывать ли вообще) зависят от СУБД. В том же Оракле он не реализован. |
| Автор: Старовъръ 12.9.2011, 16:55 | ||
|