Большинство людей будут смеяться, прочитав заголовок этого сообщения в блоге, и многие люди думают, что это такое, мы уже знаем, что это очень просто, включив флаг, но здесь сложно. Есть три способа записывать операторы SQL:
- 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]
Регистраторы - это действительно простой и элегантный способ отладки или отслеживания потока и поиска первопричины.
Еще такие статьи: -
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.