В поисках улучшения отладочной информации Hibernate
Возможный дубликат:
Вывести строку запроса в спящий режим со значениями параметров
Я использую Hibernate в качестве постоянного слоя. И я устанавливаю для show_sql значение true, чтобы увидеть отладочную информацию.
Тем не менее, я на самом деле не вижу полной информации, потому что большинство SQL-операторов, как:
insert
into
Address
(address1, address2, city, province)
values
(?, ?, ?, ?)
все параметры - вопросительный знак, хотя я могу видеть некоторые фактические данные в части условия оператора select.
Я хочу информацию как:
insert
into
Address
(address1, address2, city, province)
values
("XXX address1", "XX address2", "XXX city", "XXX province")
Как я могу настроить, чтобы увидеть эти данные параметров, или это недостаток в спящем режиме??
1 ответ
Hibernate не может регистрировать SQL и его параметры в одной строке, как вы хотите. Ведение журнала обеспечивается Hibernate (путем настройки log4j.logger.org.hibernate.SQL=debug
а также log4j.logger.org.hibernate.type=trace
в конфигурации log4j) можно только регистрировать SQL и параметры в разных строках, вот так:
insert
into
Address
(address1, address2, city, province)
values
(?, ?, ?, ?)
binding parameter [1] as [VARCHAR] - xxxxxx
binding parameter [2] as [VARCHAR] - xxxxxx
binding parameter [3] as [VARCHAR] - xxxx
Вы должны использовать прокси-драйвер JDBC, если вы хотите регистрировать SQL с параметрами в одной строке. Я попробовал log4jdbc, и он может это сделать, и он также может регистрировать время, затрачиваемое на каждый оператор SQL, и записывать строки в коде, которые вызывают операторы SQL.
Вы можете обратиться к этому блогу для получения дополнительной информации.