精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

日韩高清二区| 麻豆电影在线播放| 日韩avvvv在线播放| 最新国产精品拍自在线播放| 一道本在线免费视频| 在线看福利影| 久久婷婷成人综合色| 国产中文欧美精品| 日韩精品一卡二卡| 精品国产网站| 精品日韩欧美一区二区| 日日碰狠狠躁久久躁婷婷| 免费在线观看av| 99免费精品在线| 成人欧美一区二区三区在线湿哒哒| 欧美日韩偷拍视频| 日韩电影在线视频| 亚洲国产精彩中文乱码av| 日韩欧美国产片| 欧美13videosex性极品| 亚洲三级电影全部在线观看高清| 精品视频一区二区三区四区| 国产精品一品二区三区的使用体验| 一本一本久久| 久久91亚洲精品中文字幕| 女人又爽又黄免费女仆| 成人av地址| 911精品产国品一二三产区| 丰满爆乳一区二区三区| 在线免费观看污| 中文字幕第一区二区| 精品国产乱码久久久久久丨区2区 精品国产乱码久久久久久蜜柚 | 日韩精品免费视频一区二区三区| 色老汉av一区二区三区| 国产二区视频在线| av免费在线观| 中文字幕亚洲成人| 色狠狠久久av五月综合|| 天天干,夜夜操| 成人一区二区三区视频在线观看| 国产在线999| 中文字幕永久在线视频| 日韩制服丝袜先锋影音| 久久久久久久999| 欧美精品99久久久| 亚洲一区二区三区无吗| 中文字幕亚洲欧美| 国产精品一区二区亚洲| 精品精品久久| 中国日韩欧美久久久久久久久| 中文字幕丰满孑伦无码专区| 老牛精品亚洲成av人片| 亚洲电影免费观看| 在线免费观看污视频| 91亚洲无吗| 精品粉嫩aⅴ一区二区三区四区 | 欧美日韩中出| 7777精品伊人久久久大香线蕉的| 手机免费av片| 国产精品久久久久久久久久辛辛| 欧美日韩免费观看一区二区三区 | 国产毛片精品一区| 国产美女高潮久久白浆| 一区二区的视频| 国产美女av一区二区三区| 91视频网页| 免费av一级片| 久久亚洲一区二区三区明星换脸 | 精品视频一区二区不卡| 五月婷婷丁香色| 懂色av色香蕉一区二区蜜桃| 日韩欧美国产综合在线一区二区三区 | 日本大胆在线观看| 午夜久久久久久久久久一区二区| 黄色片网址在线观看| 日韩pacopacomama| 欧美日韩成人高清| 男人的天堂免费| 欧美电影完整版在线观看| 日韩成人在线网站| 欧美福利第一页| 久久综合av| 欧美激情一区二区三级高清视频| 特一级黄色大片| 日本免费在线视频不卡一不卡二| 91精品中国老女人| 日韩性xxxx| 日本一区二区三区国色天香 | 国产精品国产| 国产精品美女久久久久久| 在线免费一区| 高清在线视频不卡| 欧美日韩一区不卡| 国产a级片视频| 久久99高清| 九色精品免费永久在线| 在线观看国产亚洲| 麻豆精品一二三| 国产精品一区二区三区免费| 精品亚洲综合| 曰韩精品一区二区| 欧美精品第三页| 日韩精品久久久久久久软件91| 国产丝袜一区视频在线观看 | 亚洲欧美精品午睡沙发| 黄色影院一级片| 国产成人视屏| 一区二区欧美激情| 久久精品一级片| 免费观看在线综合色| 国产美女精品久久久| 91精彩视频在线观看| 亚洲高清免费观看高清完整版在线观看| 国产精品无码av无码| 99久久香蕉| 久久韩国免费视频| 三级网站在线播放| 国产乱子轮精品视频| 日本欧美色综合网站免费| 黄网站在线观| 欧美一区二区视频免费观看| 久久精品视频18| 99热免费精品| 国产成人女人毛片视频在线| 日本在线免费| 91久久一区二区| 91精品小视频| 伊人精品成人久久综合软件| 成人看片人aa| √天堂资源地址在线官网| 欧美视频二区36p| 中国一级特黄录像播放| 欧美激情无毛| 亚洲自拍另类欧美丝袜| 欧美精品电影| 欧美性欧美巨大黑白大战| 成人精品999| 亚洲免费在线| 久久久免费看| 深夜福利视频一区二区| 亚洲国产成人在线视频| 久久久美女视频| 国产91丝袜在线观看| 最近免费观看高清韩国日本大全| 一区在线影院| 这里只有精品在线播放| 国产成人a v| 成人h动漫精品一区二区器材| 久久99在线观看| 不卡一区二区三区视频| 黄网页在线观看| 欧美二区在线观看| 蜜桃av.com| 精品一区二区三区影院在线午夜| 午夜久久资源| 日韩成人在线电影| 久久深夜福利免费观看| 国产av无码专区亚洲av| 一区二区三区精品久久久| 亚洲欧美激情一区二区三区| 欧美99久久| 国模精品一区二区三区| 一级毛片久久久| 亚洲欧美一区二区精品久久久| 中文在线第一页| 国产欧美日韩激情| 热久久久久久久久| 欧美成人嫩草网站| 国产视频一区二区不卡| 亚洲精品福利电影| 中文国产成人精品| 国产农村妇女毛片精品| 亚洲一区二区三区激情| 无码人妻aⅴ一区二区三区| 久久av最新网址| 亚洲一卡二卡三卡| 日韩欧美中文在线观看| 2020久久国产精品| av在线收看| 日韩欧美视频在线| 国产成人无码精品亚洲| 国产女人aaa级久久久级 | 亚洲性夜色噜噜噜7777| 中文字幕一区二区在线视频 | 视频精品国内| 78色国产精品| 日本精品一区二区三区在线播放| 91精品国产综合久久国产大片| 国产一级特黄毛片| 国产免费成人在线视频| 成人在线观看一区二区| 日韩av网站在线观看| 久久久久久久久久伊人| 亚洲瘦老头同性70tv| 91免费高清视频| 校园春色亚洲| 久久福利网址导航| 狠狠狠综合7777久夜色撩人| 91精品婷婷国产综合久久 | www在线观看黄色| 国产亚洲视频中文字幕视频| www日本高清| 欧美性色综合网| 好吊操这里只有精品| 中文字幕一区二区三区精华液 | 狠狠躁日日躁夜夜躁av| 欧美日韩五月天| 日本中文在线播放| 亚洲精品视频在线观看网站| 国产高清一区二区三区四区| 成人性视频免费网站| 亚洲精品性视频| 久久一区国产| 免费不卡av在线| 自拍偷拍欧美专区| 视频一区三区| 国产a久久精品一区二区三区| 肥熟一91porny丨九色丨| 3d动漫一区二区三区在线观看| 91福利视频在线观看| 久草资源在线观看| 一本大道久久加勒比香蕉 | 久久久国产精品x99av| 裸体xxxx视频在线| 亚洲国产精品系列| 性一交一乱一精一晶| 555www色欧美视频| 欧美高清69hd| 日本精品视频一区二区| 亚洲久久在线观看| 午夜欧美在线一二页| 久久亚洲AV无码| 一个色在线综合| 暗呦丨小u女国产精品| 国产精品久久久久久一区二区三区| 毛茸茸多毛bbb毛多视频| 成人av在线影院| zjzjzjzjzj亚洲女人| 国产成人精品网址| 粗大的内捧猛烈进出视频| 国产精品一区二区你懂的| 爽爽爽在线观看| 韩国三级电影一区二区| 日日干日日操日日射| 精品一二三四区| 亚洲网中文字幕| 国产麻豆午夜三级精品| 欧美国产日韩在线视频| 国产精品1区2区3区| 69久久精品无码一区二区| 国产高清久久久久| 特级特黄刘亦菲aaa级| 不卡的av在线| 中文字字幕码一二三区| 国产亚洲女人久久久久毛片| 亚洲a v网站| 国产精品国产三级国产aⅴ入口 | 欧美午夜不卡在线观看免费| 国语对白做受69按摩| 欧美在线视频日韩| 一级全黄裸体免费视频| 欧美一区二区三区四区在线观看 | 亚洲18在线| 91精品黄色| 欧美a一欧美| 欧美日韩一区二区三区免费| 精品一区电影| 日韩人妻精品一区二区三区| 欧美精品国产一区二区| 欧美日本视频在线观看| 日韩精品电影在线观看| 免费在线观看污网站| 成人激情黄色小说| mm131丰满少妇人体欣赏图| 国产精品国产自产拍高清av| 538精品在线观看| 精品二区三区线观看| 中文在线资源天堂| 欧美一级夜夜爽| 无码精品黑人一区二区三区| 尤物精品国产第一福利三区| av网站大全在线| 热久久99这里有精品| 国产免费区一区二区三视频免费 | 国产一级免费大片| 99精品视频中文字幕| 精品丰满少妇一区二区三区| 亚洲综合清纯丝袜自拍| 国产真人无遮挡作爱免费视频| 欧美巨大另类极品videosbest| 免费a视频在线观看| 国产一区二区三区在线观看网站 | 成人免费网站在线看| 加勒比色综合久久久久久久久| 日本三级中国三级99人妇网站| 91精品国偷自产在线电影 | 夜夜爽99久久国产综合精品女不卡 | 国产成人一二片| 亚洲成人一区二区三区| 一区在线观看| 手机在线国产视频| 久久影院午夜论| 久久综合色综合| 欧美日韩小视频| 暖暖视频在线免费观看| 欧美床上激情在线观看| 日韩中文在线播放| 国产精品一区二区三区四区五区| 婷婷激情图片久久| 欧美黄色一级片视频| 成人午夜电影久久影院| 国产成人免费在线观看视频| 欧美体内谢she精2性欧美| www.亚洲天堂.com| 久久久精品在线| 成人亚洲视频| 欧美日韩另类丝袜其他| 亚洲激情综合| 免费看91视频| 亚洲人成在线播放网站岛国| 姑娘第5集在线观看免费好剧| 亚洲国产精品久久久| 色呦呦久久久| 91免费视频国产| 欧美疯狂party性派对| 免费国产成人av| 91麻豆国产香蕉久久精品| 国产第一页在线播放| 欧美一级精品大片| 老司机精品视频在线观看6| 国产精品旅馆在线| 亚洲人成网亚洲欧洲无码| 欧美成人高潮一二区在线看| 国产激情91久久精品导航| 国产精品 欧美激情| 欧美日韩一区久久| 91精品专区| 国产在线999| 天天插综合网| 亚洲一区二区中文字幕在线观看| 国产欧美日韩麻豆91| wwwwww在线观看| 正在播放国产一区| 欧美91在线|欧美| 亚洲精品美女久久7777777| 日本不卡视频在线观看| 91社区视频在线观看| 欧美三级三级三级| 婷婷在线视频| 91视频免费网站| 影视一区二区| 性活交片大全免费看| 五月婷婷欧美视频| 亚洲 欧美 激情 小说 另类| 国产91精品久久久久久久| 在线亚洲a色| 天天操天天摸天天爽| 国产精品进线69影院| 国产精品毛片一区二区在线看舒淇| 日韩视频免费在线| 日韩精品一级| 波多野结衣之无限发射| www一区二区| 国产视频999| 欧美xoxoxo| 亚洲欧美日韩另类精品一区二区三区 | 欧美成人精品一区二区| 香蕉成人app| 青青草精品视频在线| 久久久噜噜噜久噜久久综合| 少妇一级淫片日本| 欧美成人合集magnet| 老牛精品亚洲成av人片| 熟女少妇精品一区二区| 最新国产成人在线观看| 高h放荡受浪受bl| 国产成人精品日本亚洲| 亚洲草久电影| 国产麻豆xxxvideo实拍| 欧美最新大片在线看| h网站久久久| 久久影院理伦片| 精品亚洲porn| 欧美另类一区二区| 日韩一区二区三区在线播放| 在线综合色站| 丰满少妇在线观看| 一区二区三区四区蜜桃 | 久久综合久久八八| 天海翼亚洲一区二区三区| 色戒在线免费观看| 天天综合色天天综合色h| 91社区在线观看| 国产欧美欧洲| 久久99国产精品麻豆| www成人在线| 欧美成人激情在线| 成人91在线| 三级视频网站在线观看| 欧美日韩激情在线|