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.