Содержание
Вопрос
Многие разработчики задают вопрос о значении параметра 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 », вы можете скачать его с
2. Извлеките это
Извлеките файл p6spy-install.jar, найдите p6spy.jar и spy.properties
3. Добавить библиотечную зависимость
Добавьте p6spy.jar в вашу библиотеку проекта зависимости
4. Измените файл свойств P6Spy.
Измените файл конфигурации базы данных. Вам необходимо заменить существующий драйвер JDBC на драйвер JDBC P6Spy — » com.p6spy.engine.spy.P6SpyDriver »
Исходным является драйвер 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
Ссылка
0.00 (0%) 0 votes






