Показване на Hibernate / JPA SQL изявления от Spring Boot

1. Общ преглед

Spring JDBC и JPA осигуряват абстракции над собствени JDBC API, позволяващи на разработчиците да премахнат собствените SQL заявки. Често обаче трябва да видим тези автоматично генерирани SQL заявки и реда, в който са изпълнени за отстраняване на грешки.

В този бърз урок ще разгледаме различни начини за регистриране на тези SQL заявки в Spring Boot.

2. Регистрация на JPA заявки

2.1. Към стандартния изход

Най-простият начин е да изхвърлите заявките към стандартно, като добавите следното към application.properties :

spring.jpa.show-sql=true

За да разкрасим или доста разпечатаме SQL, можем да добавим:

spring.jpa.properties.hibernate.format_sql=true

Въпреки че това е изключително просто, не се препоръчва, тъй като директно разтоварва всичко до стандартния изход без никакви оптимизации на регистрационна рамка.

Освен това не регистрира параметрите на изготвените отчети.

2.2. Чрез регистратори

Сега нека видим как можем да регистрираме SQL изразите чрез конфигуриране на регистратори във файла със свойства:

logging.level.org.hibernate.SQL=DEBUG logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE

Първият ред регистрира SQL заявките, а вторият израз регистрира подготвените параметри на оператора.

Хубавото свойство за печат ще работи и в тази конфигурация.

Чрез задаване на тези свойства, регистрационните файлове ще бъдат изпратени до конфигурирания приложение . По подразбиране Spring Boot използва logback със стандартен изходящ добавка.

3. Записване на JdbcTemplate заявки

За да конфигурираме регистриране на оператори при използване на JdbcTemplate , са ни необходими следните свойства:

logging.level.org.springframework.jdbc.core.JdbcTemplate=DEBUG logging.level.org.springframework.jdbc.core.StatementCreatorUtils=TRACE

Подобно на конфигурацията за регистриране на JPA, първият ред е за регистриране на изрази, а вторият е за регистриране на параметри на подготвени отчети.

4. Как работи

Класовете Spring / Hibernate, които генерират SQL изрази и задават параметрите, вече съдържат кода за регистрирането им .

Нивото на тези операторски записи обаче е зададено съответно на DEBUG и TRACE , което е по-ниско от нивото по подразбиране в Spring Boot - INFO .

Добавяйки тези свойства, ние просто настройваме тези регистратори на необходимото ниво.

5. Заключение

В тази кратка статия разгледахме начините за регистриране на SQL заявки в Spring Boot.

Ако решим да конфигурираме множество добавки, можем също да отделим SQL изрази и други операторски записи в различни регистрационни файлове, за да поддържаме нещата чисти.