Домой java Как отобразить значения параметров Hibernate SQL — P6Spy

Как отобразить значения параметров Hibernate SQL — P6Spy

598
0

Вопрос

Многие разработчики задают вопрос о значении параметра Hibernate SQL. Как отобразить значения параметров SQL Hibernate, которые передаются в базу данных? Hibernate просто отображать все значения параметров в виде знака вопроса (?). С помощью свойства show_sql Hibernate будет отображать все сгенерированные операторы SQL, но не значения параметров SQL.

Например


Hibernate: insert into mkyong.stock_transaction (CHANGE, CLOSE, DATE, OPEN, STOCK_ID, VOLUME)
values (?, ?, ?, ?, ?, ?)

Есть ли способ регистрировать или отображать точные значения параметров Hibernate SQL?

Решение — P6Spy

Ну, если есть вопрос, есть ответ ~

P6Spy — это полезная библиотека для записи всех операторов SQL и значений параметров перед их отправкой в базу данных. P6Spy бесплатен, он используется для перехвата и записи всех операторов SQL вашей базы данных в файл журнала, и он работает для любого приложения, использующего драйвер JDBC.

1. Загрузите библиотеку P6Spy

Получите « p6spy-install.jar », вы можете скачать его с

  1. P6Spy официальный сайт .
  2. P6Spy на Sourceforge.net

2. Извлеките это

Извлеките файл p6spy-install.jar, найдите p6spy.jar и spy.properties

3. Добавить библиотечную зависимость

Добавьте p6spy.jar в вашу библиотеку проекта зависимости

4. Измените файл свойств P6Spy.

Измените файл конфигурации базы данных. Вам необходимо заменить существующий драйвер JDBC на драйвер JDBC P6Spy — » com.p6spy.engine.spy.P6SpyDriver »

ЧИТАТЬ ТАКЖЕ:  JUnit - запустить тест в определенном порядке

Исходным является драйвер JDBC MySQL — «com.mysql.jdbc.Driver»



false
com.mysql.jdbc.Driver
password
jdbc:mysql:// локальный: 3306 / mkyong 
root
org.hibernate.dialect.MySQLDialect
true

Изменил его на драйвер P6Spy JDBC — «com.p6spy.engine.spy.P6SpyDriver»



false
com.p6spy.engine.spy.P6SpyDriver

password
jdbc:mysql:// локальный: 3306 / mkyong 
root
org.hibernate.dialect.MySQLDialect
true

5. Измените файл свойств P6Spy.

Измените файл свойств P6Spy — « spy.properties »

Замените «настоящий драйвер» существующим драйвером MySQL JDBC


realdriver=com.mysql.jdbc.Driver

#specifies another driver to use
realdriver2=
#specifies a third driver to use
realdriver3=

Изменить местоположение файла журнала
Измените расположение файла журнала в свойстве logfile , все операторы SQL будут входить в этот файл.

Windows


logfile     = c:/spy.log

* Никс


logfile     = /srv/log/spy.log

6. Скопируйте «spy.properties» в classpath проекта

Скопируйте «spy.properties» в корневую папку вашего проекта, убедитесь, что ваш проект может найти «spy.properties», в противном случае он предложит файлу «spy.properties» не найдено исключение.

7. Готово

Запустите ваше приложение и выполните некоторую транзакцию базы данных, вы заметите, что все операторы SQL, отправленные из приложения в базу данных, будут зарегистрированы в файле, который вы указали в «spy.properties».

Пример файла журнала, как показано ниже.


insert into mkyong.stock_transaction (CHANGE, CLOSE, DATE, OPEN, STOCK_ID, VOLUME)
values (?, ?, ?, ?, ?, ?)|
insert into mkyong.stock_transaction (CHANGE, CLOSE, DATE, OPEN, STOCK_ID, VOLUME)
values (10.0, 1.1, '2009-12-30', 1.2, 11, 1000000)

Заключение

Честно говоря, P6Spy действительно полезен для сокращения времени отладки разработчиков. Пока ваш проект использует драйвер JDBC для соединения, P6Sqp может включить его и записать все операторы SQL и значения параметров для вас.

Для пользователей Maven

Вы можете использовать Maven для загрузки зависимости P6Spy в свой pom.xml



p6spy
p6spy
1.3

Однако файл «spy.properties» не входит в комплект, вы должны создать его самостоятельно. Вы можете скачать шаблон здесь — spy.properties

Ссылка

  1. Конфигурация P6Spy

параметр гибернации

Как отобразить значения параметров Hibernate SQL — P6Spy

0.00 (0%) 0 votes

ОСТАВЬТЕ ОТВЕТ

Пожалуйста, введите ваш комментарий!
пожалуйста, введите ваше имя здесь