精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

驚呆了!Spring Boot 調試執行 SQL 的12個強大技巧

數據庫 其他數據庫
在Spring Boot應用里調試數據庫交互,就跟閉著眼在迷宮里找路一樣難。用Spring Data JPA和Hibernate的時候,日志記錄可不是只在控制臺顯示點信息那么簡單,它能讓我們看清應用里面到底是怎么運行的。

環境:SpringBoot3.4.2

1. 簡介

在Spring Boot應用里調試數據庫交互,就跟閉著眼在迷宮里找路一樣難。用Spring Data JPA和Hibernate的時候,日志記錄可不是只在控制臺顯示點信息那么簡單,它能讓我們看清應用里面到底是怎么運行的。

本文將探討如何配置、定制和解讀Hibernate與Spring Data JPA的日志記錄。通過學習,你將掌握將日志轉化為強大診斷與監控工具的實用技能,從而提升應用程序的可靠性和性能。

2.實戰案例

2.1 開啟SQL日志

spring:
  jpa:
    show-sql: true

默認情況下,該配置為false。當設置 spring.jpa.show-sql=true 時,Spring Boot 會將此配置傳遞給底層 JPA 提供商(默認為 Hibernate),該提供商隨后會將執行的所有 SQL 命令打印到標準輸出(控制臺)。需要注意的是,此種方式輸出的SQL是通過System.out。如下示例:

Hibernate: select b1_0.id,b1_0.description,b1_0.isbn,b1_0.page,b1_0.price,b1_0.title from book b1_0 limit ?,?

它會打印出SQL語句,但不會顯示綁定的參數值(占位符(?)會顯示,但實際值不會)。生產環境中禁止使用show-sql功能。

2.2 格式化SQL

spring:
  jpa:
    properties:
      hibernate:
        '[format_sql]': true

該屬性會對其記錄的 SQL 查詢進行格式化處理,使其更易于閱讀。如下示例:

Hibernate: 
    select
        b1_0.id,
        b1_0.description,
        b1_0.isbn,
        b1_0.page,
        b1_0.price,
        b1_0.title 
    from
        book b1_0 
    limit
        ?, ?

注意:該配置必須在設置show-sql為true時有效。

2.3 高亮SQL

spring:
  jpa:
    properties:
      hibernate:
        '[highlight_sql]': true

它能在Hibernate的SQL輸出中啟用ANSI顏色代碼,使SQL關鍵字、表名及其他查詢部分在控制臺中視覺上清晰區分。這本質上是對日志記錄的SQL語句進行的"語法高亮"。如下示例:

圖片圖片

SQL語句中的關鍵字高亮顯示了。注意,SQL高亮功能僅在控制臺或IDE日志窗口支持ANSI顏色時生效。

2.4 顯示SQL注釋

spring:
  jpa:
    properties:
      hibernate:
        '[use_sql_comments]': true

在生成的SQL語句中包含額外的注釋行。這些注釋通常標明查詢的上下文或來源,例如觸發該查詢的實體、集合或操作。如下示例:

圖片圖片

這里顯示的是默認的注釋,我們可以結合@Meta注解自定義注釋說明,如下示例:

public interface BookRepository extends PagingAndSortingRepository<Book, Long>, CrudRepository<Book, Long> {
  @Meta(comment = "分頁查詢所有的圖書信息")
  Page<Book> findAll(Pageable pageable) ;
}

運行結果:

圖片圖片

2.5 顯示統計跟蹤信息

spring:
  jpa:
    properties:
      hibernate:
        '[generate_statistics]': true

它啟用了Hibernate的內部統計跟蹤功能。啟用后,Hibernate將收集并展示有關持久層運行狀況的詳細運行時指標——例如查詢次數、緩存命中/未命中、實體加載次數等。如下示例:

圖片圖片

收集統計數據會增加一些開銷。在開發、測試或性能分析階段使用是可行的,但在生產環境中通常應禁用此功能,除非需要用于監控。此外,這些指標可通過JMX或Micrometer/Prometheus等工具集成到監控儀表板中。

2.6 顯示慢SQL

spring:
  jpa:
    properties:
      hibernate:
        '[log_slow_query]': 200 #慢查詢閾值(毫秒)
logging:
  level:
    '[org.hibernate.SQL_SLOW]': INFO

通過上面的配置在查詢執行時間超過指定毫秒數時記錄警告日志。值200表示記錄所有耗時超過200毫秒的查詢。如下示例:

圖片圖片

接下來,我們將基于日志級別的SQL日志控制。

Hibernate會生成幾類日志,每類日志服務于不同目的:

  • SQL查詢:發送到數據庫的實際SQL語句
  • 參數:查詢參數的綁定值
  • 事務:事務生命周期事件
  • 緩存:一級緩存和二級緩存的命中與未命中情況

我們先將上面的所有配置刪除或者關閉。

2.7 生成原始的SQL語句

logging:
  level:
    '[org.hibernate.SQL]': DEBUG

org.hibernate.SQL 負責輸出 Hibernate 生成的原始 SQL 語句及其發送至數據庫的過程,但不會顯示參數值(這些需要單獨的日志器)。如下示例:

21:04  DEBUG  [main] org.hibernate.SQL Line:135 - 
    select
        b1_0.id,
        b1_0.description,
        b1_0.isbn,
        b1_0.page,
        b1_0.price,
        b1_0.title 
    from
        book b1_0 
    limit
        ?, ?

這里輸出的SQL語句完全與Hibernate發送至數據庫的版本一致,但參數位置使用了占位符(?)進行標記。

2.8 顯示SQL參數

logging:
  level:
    '[org.hibernate.SQL]': DEBUG
    '[org.hibernate.orm.jdbc.bind]': TRACE

在Hibernate 6(Spring Boot 3及更高版本所采用的版本)中,此設置用于啟用參數綁定日志記錄功能。當設置為TRACE級別時,Hibernate會將綁定到生成的SQL語句中占位符(?)的每個值都記錄到日志中。如下示例:

21:07  DEBUG  [main] org.hibernate.SQL Line:135 - 
    select
        b1_0.id,
        b1_0.description,
        b1_0.isbn,
        b1_0.page,
        b1_0.price,
        b1_0.title 
    from
        book b1_0 
    limit
        ?, ?
21:07 TRACE  [main] org.hibernate.orm.jdbc.bind Line:24  - binding parameter (1:INTEGER) <- [0]
21:07 TRACE  [main] org.hibernate.orm.jdbc.bind Line:24  - binding parameter (2:INTEGER) <- [20]

2.9 顯示事務日志

logging:
  level:
    '[org.hibernate.engine.transaction]': DEBUG

此配置為Hibernate事務管理引擎啟用了調試級別的日志記錄。包括事務啟動、提交、回滾或標記事務以供回滾等操作。如下示例:

圖片圖片

2.10 獲取數據日志(從結果集)

logging:
  level:
    '[org.hibernate.orm.jdbc.extract]': TRACE

這適用于Hibernate 6+的日志配置方案,可為JDBC結果提取過程生成極其詳細的日志——該過程指Hibernate從數據庫返回的結果集(ResultSet)中獲取數據,并將其映射至Java對象(實體、DTO等)的操作。如下示例:

圖片圖片

2.11 統計信息

spring:
  jpa:
    properties:
      hibernate:
        '[generate_statistics]': true
logging:
  level:
    '[org.hibernate.stat]': DEBUG

這將輸出 Hibernate 統計信息日志記錄。如下示例:

圖片圖片

2.12 二級緩存&查詢緩存日志

logging:
  level:
    '[org.hibernate.cache]': DEBUG

 它控制Hibernate的二級緩存和查詢緩存日志記錄,顯示實體/查詢何時被緩存、獲取或清除。在開發階段有助于診斷緩存行為和性能,但生產環境中過于冗余。

責任編輯:武曉燕 來源: Springboot全家桶實戰案例
相關推薦

2024-07-05 11:47:43

2021-07-05 18:05:40

SpringBean方法

2021-03-17 11:47:37

tomcatJavaServerJava

2015-06-24 16:09:54

Easy Connec深信服

2020-07-09 15:10:20

開發技能代碼

2015-05-19 14:30:48

加密視頻加密億賽通

2021-12-13 22:52:37

iphone iOSHTML

2021-11-02 11:31:47

Go代碼模式

2021-05-28 10:09:22

GC詳解Java JVM

2020-01-06 09:14:59

Java程序員線程

2020-04-02 07:31:53

RPC超時服務端

2013-08-01 15:12:43

2025-04-02 00:45:00

JupyterDrawData數據

2019-12-20 14:32:55

JavaScript函數開發

2020-12-23 08:03:01

JavaScript開發代碼

2023-09-24 13:55:42

Spring應用程序

2025-10-28 01:25:00

SQL查詢Spring查詢模式

2020-10-31 09:06:37

C語言編程語言

2024-01-03 14:54:56

PythonPandas數據處理工具

2023-09-25 13:15:50

SQL數據庫
點贊
收藏

51CTO技術棧公眾號

亚洲av成人精品一区二区三区在线播放 | 久久九九免费| 亚洲图片欧美午夜| 欧洲美女亚洲激情| 国模精品视频| 一区视频在线播放| 久久亚洲午夜电影| 国产精品高潮呻吟久久久| 一本色道久久综合亚洲精品不卡 | 午夜在线一区| 久久视频在线播放| 国产精品无码久久久久一区二区| 91嫩草国产线观看亚洲一区二区| 亚洲成人综合在线| 在线视频91| 人人九九精品| 福利电影一区二区| 国产精品中文字幕在线| 日韩精品一区二区三| 天天综合国产| 亚洲图片欧美日产| 黄色录像a级片| 日本一区二区乱| 欧美日韩视频在线第一区 | 久草免费在线视频| 中文字幕亚洲精品在线观看| 久久久综合香蕉尹人综合网| 国产黄色大片网站| 日韩av网站在线观看| 韩国欧美亚洲国产| 日韩女优一区二区| 日韩在线视频精品| 一本一道久久a久久精品逆3p | 久久久久成人网| 久久国产高清视频| 日韩精品一区二区三区免费观影 | 91九色蝌蚪成人| 91av久久久| 日韩国产在线观看一区| 97在线免费观看| 久久这里只有精品国产| 91精品国产麻豆国产在线观看| 亚洲美女自拍视频| 亚洲一区二区观看| 欧美电影在线观看免费| 精品免费国产二区三区| 在线观看欧美一区二区| 成人噜噜噜噜| 欧美一个色资源| 佐山爱在线视频| 欧美成人精品午夜一区二区| 欧美精品国产精品| 最新av免费在线观看| 四虎精品一区二区免费| 欧美日韩在线播放一区| 中文久久久久久| 免费在线观看一区| 欧美日韩美少妇| 男人添女人下面免费视频| 日本综合视频| 4438x成人网最大色成网站| 欧美性受xxxxxx黑人xyx性爽| 视频欧美精品| 日韩三级视频中文字幕| 风韵丰满熟妇啪啪区老熟熟女| 欧美日韩午夜电影网| 日韩免费观看高清完整版 | 国产一区二区女内射| 极品美女销魂一区二区三区免费| 成人精品一区二区三区| 国产偷拍一区二区| 国产99久久久国产精品潘金网站| 国产成人看片| 免费福利在线视频| 国产精品人妖ts系列视频| 免费看av软件| 成人免费高清观看| 欧美性猛交xxxx富婆| 国产精品久久a| 高清久久一区| 亚洲精品国产精品自产a区红杏吧| 亚洲黄色在线网站| 午夜精品毛片| 91国产视频在线| 欧美激情一区二区三区免费观看| 久久99国内精品| 97超碰资源| 毛片在线播放网站| 亚洲日本丝袜连裤袜办公室| 秋霞无码一区二区| 亚洲欧美在线成人| 日韩欧美三级在线| 国产毛片久久久久久久| 91精品91| 国产成人精品日本亚洲专区61| 国产精品久久久久久久久毛片| 成人免费毛片aaaaa**| 日韩国产高清一区| 金瓶狂野欧美性猛交xxxx| 色播五月激情综合网| 成人在线短视频| 九色精品91| 欧美夫妻性生活xx| 无码人妻精品一区二区| 国产成人午夜电影网| 日本黄网免费一区二区精品| 韩国日本一区| 欧美日韩国产一级二级| 中文字幕日韩三级片| 亚洲啊v在线观看| 日本欧美国产在线| 免费国产精品视频| 国产精品成人免费| 久久久久久久少妇| 国产精品视屏| 欧美成人在线免费视频| 高潮无码精品色欲av午夜福利| 成人免费视频一区二区| 在线观看一区欧美| 欧美日韩亚洲国产| 亚洲精品久久久久久久久久久久久 | 在线观看免费的av| 九九热爱视频精品视频| 亚洲91精品在线观看| 性少妇videosexfreexxx片| 欧美激情一区不卡| 久久精品午夜福利| 欧美人妖在线观看| 久久久久亚洲精品成人网小说| 国产麻豆一精品一男同| 国产精品久久久久9999吃药| 国产aaa一级片| 精品三级av| 午夜精品久久久99热福利| www.成人免费视频| 一区二区三区高清| 国产男女无遮挡猛进猛出| 91蜜臀精品国产自偷在线| 国产成人鲁鲁免费视频a| 日本啊v在线| 色噜噜久久综合| 国产全是老熟女太爽了| 蜜桃av一区| 欧美日韩精品久久| 欧美××××黑人××性爽| 日韩av影片在线观看| 久草国产精品视频| 99这里只有久久精品视频| 黄色av网址在线播放| 久久动漫网址| 国产99在线|中文| 国产高清视频在线观看| 欧美性感一区二区三区| 日本一卡二卡在线播放| 蜜臀av性久久久久av蜜臀妖精| 手机成人在线| 91精品一区| 欧美激情奇米色| 人妻中文字幕一区| 丁香五六月婷婷久久激情| 国产中文字幕一区二区| 免费永久网站黄欧美| 欧美一区二区三区电影在线观看| 欧美magnet| 最新日韩中文字幕| 国产av精国产传媒| 亚洲国产精品一区二区www在线| 国产精品久久久久久久无码| 亚洲欧美卡通另类91av| 日韩中文字幕一区二区| 疯狂欧洲av久久成人av电影| 欧美大胆a视频| 亚洲 另类 春色 国产| 在线区一区二视频| 性欧美videos| gogogo免费视频观看亚洲一| 可以免费在线看黄的网站| 97精品97| 成人片在线免费看| 欧美性suv| 蜜臀久久99精品久久久无需会员| 日本xxxxxwwwww| 欧美在线视频全部完| 91插插插插插插| 久久亚洲综合色| 99中文字幕在线| 99亚洲视频| 亚洲精品免费在线看| av日韩在线播放| 国产精品视频一区国模私拍| 日韩伦理电影网站| 亚洲最新av网址| 亚洲国产精品久久久久爰性色| 欧美日韩国产丝袜美女| 多男操一女视频| 97精品电影院| 奇米视频888| 免费精品视频| 岛国大片在线播放| 欧美hd在线| 女同一区二区| 999在线精品| 成人黄色av网站| 欧美日韩视频网站| 高清亚洲成在人网站天堂| 91porn在线观看| 亚洲精品一区久久久久久| jizz中国女人| 欧美日韩午夜在线| 免费黄色片视频| 精品福利在线视频| 欧美卡一卡二卡三| 国产精品网站在线播放| 丰满少妇一区二区三区| 国产91精品一区二区麻豆亚洲| 日本激情综合网| 免费视频一区| 亚洲午夜无码av毛片久久| 午夜精品偷拍| 黄色高清视频网站| 欧美激情偷拍自拍| 色吧亚洲视频| 国产真实有声精品录音| 精品欧美一区二区在线观看视频| 久久精品九色| 成人黄色免费网站在线观看| 亚洲综合av一区二区三区| 欧美一区二三区| 欧美gv在线| 国模吧一区二区| 丁香花在线影院| 九九综合九九综合| 国产在线高清视频| 日韩一区二区福利| 暖暖日本在线观看| 久久久电影免费观看完整版| av网在线观看| 日韩一区二区在线视频| av在线首页| www.久久久久久.com| 成人免费高清在线播放| 国产一区二区av| a天堂中文在线| 中文字幕日韩精品有码视频| gogogo高清在线观看免费完整版| 国产一区二区三区在线观看视频| 国产在线观看网站| 尤物九九久久国产精品的分类| 国产高清免费av在线| 国产亚洲欧洲黄色| 尤物网在线观看| 久久久精品中文字幕| av免费在线免费| 久久久久国产精品www| 超级白嫩亚洲国产第一| 日本高清不卡在线| 91超碰碰碰碰久久久久久综合| 国产精品影片在线观看 | 国产美女在线精品免费观看| 国产精品乱战久久久| 九九99玖玖| 中文字幕伦av一区二区邻居| 日本日本精品二区免费| 99国产精品一区二区| 成人一区二区av| av不卡在线| 日本美女高潮视频| 韩国午夜理伦三级不卡影院| 中文字幕一二三区| 99久久国产综合精品麻豆 | 亚洲免费看黄网站| 国产精品30p| 在线观看成人小视频| 国产人妖在线播放| 日韩经典中文字幕在线观看| 97电影在线| 欧美激情综合亚洲一二区| 在线观看v片| 成人美女免费网站视频| av不卡一区| 亚洲精品永久www嫩草| 欧美视频不卡| 不要播放器的av网站| 国模娜娜一区二区三区| 懂色av粉嫩av蜜乳av| 最新国产成人在线观看| av大片在线免费观看| 欧美日韩国产片| 免费观看a视频| 最新中文字幕亚洲| 国产乱码精品一区二三赶尸艳谈| 国产精品视频免费在线| 97久久综合区小说区图片区| 日本一区免费在线观看| 欧美日韩三区| 日本在线观看免费视频| av色综合久久天堂av综合| 国产精品suv一区二区88| 欧美视频二区36p| 精品国产乱码一区二区三| 亚洲欧洲日产国码av系列天堂 | 97婷婷涩涩精品一区| 亚洲男人在线| 日韩高清av电影| 亚洲一区不卡| 亚洲精品久久一区二区三区777| 国产欧美精品国产国产专区| 欧美亚韩一区二区三区| 日韩一级片在线播放| 成人精品一区| 欧美重口另类videos人妖| 日韩av综合| 中文字幕中文字幕在线中一区高清| 在线亚洲成人| 日韩女优在线视频| 亚洲视频狠狠干| 中文字幕在线看人| 日韩h在线观看| 激情图片在线观看高清国产| 成人免费网视频| 久久高清精品| 亚洲综合欧美激情| 国产日韩影视精品| 中文字幕av影院| 日韩第一页在线| 欧美sm一区| 久精品国产欧美| 99综合视频| 精品国产人妻一区二区三区| 亚洲综合免费观看高清在线观看| 国产又粗又黄又爽视频| 日韩中文字幕欧美| 日韩成人在线电影| 伊人色综合影院| 久色婷婷小香蕉久久| 少妇视频在线播放| 欧美日韩中文字幕一区| a√资源在线| 国产欧美久久一区二区| 国产精品97| 婷婷激情小说网| 亚洲精品一卡二卡| 精品久久久无码中文字幕| 久久精品一本久久99精品| 亚洲色图图片| 无码人妻aⅴ一区二区三区日本| 精品无码三级在线观看视频| 一级免费黄色录像| 在线观看91av| 超鹏97在线| 国产高清精品一区二区| 亚洲大片在线| 国产精品亚洲无码| 欧美在线一区二区| 国产盗摄在线观看| 成人精品一二区| 亚洲美洲欧洲综合国产一区| 精品无码人妻一区| 欧美手机在线视频| 国产视频一区二区| av一区二区三区免费| 亚洲精品韩国| www.av天天| 7777女厕盗摄久久久| 日本在线观看大片免费视频| 国产一级精品aaaaa看| 国产精品一区毛片| 99国产精品免费| 日韩精品中文字幕在线一区| 国产伦子伦对白在线播放观看| 欧美高清性xxxxhd| 精品一区二区三区视频| 久久一级黄色片| 亚洲欧洲中文天堂| 国产一区二区三区免费在线| av在线播放亚洲| 欧美国产精品一区| 亚洲av无码乱码在线观看性色| 6080yy精品一区二区三区| 欧洲激情视频| 精品人妻二区中文字幕| 色国产综合视频| 污视频在线看网站| 日韩wuma| 国产成人亚洲综合a∨猫咪| 狠狠人妻久久久久久综合| 日韩在线视频一区| 欧美在线导航| 亚洲人视频在线| 欧美午夜精品久久久久久人妖| 国精产品一区| 日韩精品一区二区三区四区五区| 国产美女视频91| 蜜臀尤物一区二区三区直播| 欧美福利视频网站| 久久香蕉国产| 最新中文字幕视频| 日韩精品一区二区在线观看| 国产一区一一区高清不卡| 成人黄色av片|