Zobraziť príkazy Hibernate / JPA SQL z Spring Boot

1. Prehľad

Jarné JDBC a JPA poskytujú abstrakcie nad natívnymi API JDBC, čo umožňuje vývojárom skoncovať s natívnymi dotazmi SQL. Často však potrebujeme vidieť tieto automaticky generované dotazy SQL a poradie, v akom boli vykonané na účely ladenia.

V tomto rýchlom výučbe sa pozrieme na rôzne spôsoby protokolovania týchto SQL dotazov v Spring Boot.

2. Prihlasovanie dotazov JPA

2.1. Na štandardný výstup

Najjednoduchším spôsobom je vypísať štandardné dotazy tak, že do nich pridáte nasledujúce application.properties:

spring.jpa.show-sql = true

Na skrášlenie alebo peknú tlač SQL môžeme pridať:

spring.jpa.properties.hibernate.format_sql = true

Aj keď je to veľmi jednoduché, neodporúča sa to pretože priamo vykladá všetko na štandardný výstup bez akýchkoľvek optimalizácií rámca protokolovania.

Navyše, nezaznamenáva parametre pripravených výpisov.

2.2. Cez Loggery

Teraz sa pozrime, ako môžeme protokolovať príkazy SQL konfiguráciou záznamníkov v súbore vlastností:

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

Prvý riadok zaznamenáva dotazy SQL a druhý príkaz zaznamenáva pripravené parametre príkazu.

Vlastnosť pretty print bude fungovať aj v tejto konfigurácii.

Nastavením týchto vlastností protokoly sa odošlú nakonfigurovanému účastníkovi. V predvolenom nastavení používa Spring Boot logback so štandardným výstupom.

3. Prihlásenie JdbcTemplate Dotazy

Konfigurácia protokolovania výpisov pri použití JdbcTemplate, potrebujeme nasledujúce vlastnosti:

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

Podobne ako pri konfigurácii protokolovania JPA je prvý riadok určený na protokolovanie výpisov a druhý na zaznamenávanie parametrov pripravených výpisov.

4. Ako to funguje?

Triedy jar / zimný spánok, ktoré generujú príkazy SQL a nastavujú parametre, už obsahuje kód na ich prihlásenie.

Úroveň týchto výpisov z denníka je však nastavená na DEBUG a TRACE , ktorá je nižšia ako predvolená úroveň v Spring Boot - INFO.

Pridaním týchto vlastností iba nastavujeme tieto protokolovacie programy na požadovanú úroveň.

5. Záver

V tomto krátkom článku sme sa pozreli na spôsoby protokolovania SQL dotazov v Spring Boot.

Ak sa rozhodneme nakonfigurovať viac príloh, môžeme tiež udržiavať prehľadnosť rozdelením príkazov SQL a ďalších príkazov protokolu do rôznych súborov protokolu.


$config[zx-auto] not found$config[zx-overlay] not found