Большинство людей будут смеяться, прочитав заголовок этого сообщения в блоге, и многие люди думают, что это такое, мы уже знаем, что это очень просто, включив флаг, но здесь сложно. Есть три способа записывать операторы SQL:

  1. spring.jpa.show-sql:

Это стандартное свойство, известное 99% людей, и все мы используем это свойство для включения и выключения оператора SQL в журналах. Чтобы включить / отключить, мы включаем это свойство в файл application.properties.

spring.jpa.show-sql=true

Недостаток этого регистратора в том, что он просто покажет нам этот журнал.

Hibernate: insert into patient (id, name, address) values (?, ?, ?)

Из этого журнала мы знаем, что были вставлены некоторые данные, но какие данные были вставлены, мы не знаем. Он не показывает нам значения параметров.

2. spring.jpa.properties.hibernate.format_sql:

Есть еще одна вещь, которую мы можем сделать для уточнения вывода, используя следующие свойства.

spring.jpa.properties.hibernate.format_sql=true

Это форматирует оператор и делает его красивее, добавляя отступы, поэтому дает четкое представление в стиле SQL 😊,

Hibernate: 
    insert 
    into
        patient
        (id, name, address) 
    values
        (?, ?, ?)

3. Использование регистраторов:

Другой способ сделать это - использовать уровень регистратора. Если вы столкнетесь с критической ошибкой PROD, то определенно знаете, как можно использовать эту функцию весенней загрузки.

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

Это дает подробные журналы с каждым значением параметра и типом данных.

2020–12–19 00:18:16.016 DEBUG 1096 — — [io-8080-exec-12] org.hibernate.SQL : insert into patient (id, name, address) values (?, ?, ?)2020–12–19 00:18:16.049 TRACE 1096 — — [io-8080-exec-12] o.h.type.descriptor.sql.BasicBinder : binding parameter [1] as [BIGINT] — [1]
2020–12–19 00:18:16.047 TRACE 1096 — — [io-8080-exec-12] o.h.type.descriptor.sql.BasicBinder : binding parameter [2] as [VARCHAR] — [Mukesh]
2020–12–19 00:18:16.047 TRACE 1096 — — [io-8080-exec-12] o.h.type.descriptor.sql.BasicBinder : binding parameter [3] as [VARCHAR] — [India]

Регистраторы - это действительно простой и элегантный способ отладки или отслеживания потока и поиска первопричины.

Github Repo

Еще такие статьи: -

Https://medium.com/techwasti

Https://medium.com/techwasti/spring-boot-liquibase-to-manage-database-versioning-ffa2b713d29c

Https://medium.com/techwasti/spring-boot-thymeleaf-hello-world-example-11bc00bb22b4

Давайте подключимся к Stackoverflow, LinkedIn, Facebook и Twitter.