Рубрики
Без рубрики

Как отобразить значения параметров sql в режиме гибернации – P6Spy

– Как отобразить значения параметров sql в режиме гибернации – P6Spy

Вопрос

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

Например

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

Есть ли способ регистрировать или отображать точные значения параметров 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.свойства

3. Добавить зависимость от библиотеки

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

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

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

Оригинал – драйвер MySQL JDBC – “com.mysql.jdbc. Водитель”


  false
  com.mysql.jdbc.Driver
  password
  jdbc:mysql://localhost:3306/mkyong
  root
  org.hibernate.dialect.MySQLDialect
  true

Изменил его на драйвер JDBC P6Spy – “com.p6spy.engine.spy.”. Р6спидрайвер”


  false
  com.p6spy.engine.spy.P6SpyDriver
  
  password
  jdbc:mysql://localhost: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=

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

Окна

logfile     = c:/spy.log

* шухер

logfile     = /srv/log/spy.log

6. Скопируйте “spy.properties” в путь к классам проекта

Скопируйте “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 в свой Вы можете использовать Maven для загрузки зависимости P6Spy в свой

        
		p6spy
		p6spy
		1.3
	

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

Ссылка

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

Оригинал: “https://mkyong.com/hibernate/how-to-display-hibernate-sql-parameter-values-solution/”