Vis dvale / JPA SQL-udsagn fra Spring Boot

1. Oversigt

Spring JDBC og JPA giver abstraktioner over native JDBC API'er, der giver udviklere mulighed for at fjerne native SQL-forespørgsler. Imidlertid er vi ofte nødt til at se disse auto-genererede SQL-forespørgsler og den rækkefølge, de blev udført i til fejlfindingsformål.

I denne hurtige vejledning skal vi se på forskellige måder at logge disse SQL-forespørgsler på i Spring Boot.

2. Logning af JPA-forespørgsler

2.1. Til standard output

Den enkleste måde er at dumpe forespørgslerne til standard ud er at føje følgende til application.properties:

spring.jpa.show-sql = sandt

For at forskønne eller smukt udskrive SQL kan vi tilføje:

spring.jpa.properties.hibernate.format_sql = sandt

Selvom dette er ekstremt simpelt, det anbefales ikke da det direkte aflæsser alt til standardoutput uden nogen optimeringer af en logningsramme.

I øvrigt, det logger ikke parametrene for forberedte udsagn.

2.2. Via loggere

Lad os nu se, hvordan vi kan logge SQL-sætningerne ved at konfigurere loggere i egenskabsfilen:

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

Den første linje logger SQL-forespørgslerne, og den anden sætning logger de forberedte sætningsparametre.

Den smukke udskrivningsegenskab fungerer også i denne konfiguration.

Ved at indstille disse egenskaber, logfiler sendes til den konfigurerede appender. Som standard bruger Spring Boot logback med en standard ud appender.

3. Logning JdbcTemplate Forespørgsler

For at konfigurere sætningslogning, når du bruger JdbcTemplate, har vi brug for følgende egenskaber:

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

Svarende til JPA-logningskonfigurationen er den første linje til logning af udsagn, og den anden er at logge parametre for forberedte udsagn.

4. Hvordan fungerer det?

Forår / dvale-klasser, som genererer SQL-sætninger og indstiller parametrene, indeholder allerede koden til logning af dem.

Niveauet for disse logopgørelser er dog indstillet til FEJLFINDE og SPOR henholdsvis hvilket er lavere end standardniveauet i Spring Boot - INFO.

Ved at tilføje disse egenskaber indstiller vi bare disse loggere til det krævede niveau.

5. Konklusion

I denne korte artikel har vi set på måderne til at logge SQL-forespørgsler i Spring Boot.

Hvis vi vælger at konfigurere flere appenders, kan vi også adskille SQL-sætninger og andre log-sætninger i forskellige logfiler for at holde tingene rene.


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