欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SpringBoot集成P6Spy的實現(xiàn)示例

 更新時間:2025年08月12日 08:30:29   作者:老馬9527  
本文主要介紹了SpringBoot集成P6Spy的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

本節(jié)目標

  • 實現(xiàn)Mybatis Plus + P6Spy 進行sqly語句輸出
  • 實現(xiàn)Mybatis Plus + P6Spy 進行sql執(zhí)行耗時輸出

P6Spy簡介

p6spy 是一個可以用來在應用程序中攔截和修改數(shù)據(jù)操作語句的開源框架。通常使用它來跟蹤數(shù)據(jù)庫操作,查看程序運行過程中執(zhí)行的sql語句。簡單來說,就是對 SQL 語句執(zhí)行過程的監(jiān)控。我們一般用來做兩件事情:

  • 打印完整的sql語句
  • sql語句的耗時

官網(wǎng)地址:p6spy.readthedocs.io/en/latest/

拋出問題

首先來看一下 Mybaties-plus 的默認輸出:

==>  Preparing: SELECT user_id,dept_id,user_name,nick_name,email,phonenumber,sex,avatar,password,status,del_flag,create_time,create_by,update_time,update_by FROM sys_user WHERE del_flag=0 AND (user_id = ? AND user_name LIKE ?)
==> Parameters: 4(Long), %馬%(String)

我們期望的是打印出一條完整的 sql 語句,甚至還想要看到每條 sql 語句的總耗時。這個時候,p6spy 就發(fā)揮出它的作用了。

集成P6Spy

參照gitee.com/mayuanfei/S…下的springboot04項目創(chuàng)建springboot05項目。然后在其基礎(chǔ)上進行修改。

1. SpringBoot三板斧之加入依賴

<dependency>
    <groupId>p6spy</groupId>
    <artifactId>p6spy</artifactId>
    <version>3.9.1</version>
</dependency>

2. 修改數(shù)據(jù)庫鏈接配置

  • 替換你的JDBC Driver為com.p6spy.engine.spy.P6SpyDriver;
  • 修改JDBC Url為jdbc:p6spy:xxxx。

application-dev中的配置修改前:

spring:
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://101.43.67.114:3306/springboot-demo?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
    username: root
    password: 23456

修改后:

3. 添加配置文件 spy.properties

在resources目錄下創(chuàng)建spy.properties屬性文件,內(nèi)容如下:

# P6Spy的配置
# 應用的攔截模塊
modulelist=com.baomidou.mybatisplus.extension.p6spy.MybatisPlusLogFactory,com.p6spy.engine.outage.P6OutageFactory
# 自定義日志打印
logMessageFormat=com.baomidou.mybatisplus.extension.p6spy.P6SpyLogger
# 日志輸出到控制臺
appender=com.baomidou.mybatisplus.extension.p6spy.StdoutLogger
# 使用日志系統(tǒng)記錄 sql
#appender=com.p6spy.engine.spy.appender.Slf4JLogger
# 設(shè)置 p6spy driver 代理
deregisterdrivers=true
# 取消JDBC URL前綴
useprefix=true
# 配置記錄 Log 例外,可去掉的結(jié)果集有error,info,batch,debug,statement,commit,rollback,result,resultset.
excludecategories=info,debug,result,commit,resultset
# 日期格式
dateformat=yyyy-MM-dd HH:mm:ss
# 實際驅(qū)動 可多個
driverlist=com.mysql.cj.jdbc.Driver
# 是否開啟慢SQL記錄
outagedetection=true
# 慢SQL記錄標準 2 秒
outagedetectioninterval=2
# 是否過濾 Log
filter=true
# 過濾 Log 時所排除的 sql 關(guān)鍵字,以逗號分隔
exclude=select 1 from dual

4. 執(zhí)行上節(jié)中的測試

@Test
public  void testSelect() {
    List<SysUser> users = new LambdaQueryChainWrapper<>(this.sysUserMapper)
            .eq(SysUser::getUserId, 4L)
            .like(SysUser::getUserName, "馬")
            .list();
    Console.log("users -> {}", users);
}

這里能看到執(zhí)行用時和具體的sql語句如下:

Consume Time:29 ms 2023-05-24 15:34:44
 Execute SQL:SELECT user_id,dept_id,user_name,nick_name,email,phonenumber,sex,avatar,password,status,del_flag,create_time,create_by,update_time,update_by FROM sys_user WHERE del_flag=0 AND (user_id = 4 AND user_name LIKE '%馬%')

代碼地址

https://gitee.com/mayuanfei/SpringBootDemo下的springboot05

記憶印記

  • p6spy能打印出完成的sql
  • p6spy能打印出sql運行的用時

到此這篇關(guān)于SpringBoot集成P6Spy的實現(xiàn)示例的文章就介紹到這了,更多相關(guān)SpringBoot集成P6Spy內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家! 

相關(guān)文章

  • MyBatis入門學習教程(一)-MyBatis快速入門

    MyBatis入門學習教程(一)-MyBatis快速入門

    MyBatis是一個支持普通SQL查詢,存儲過程和高級映射的優(yōu)秀持久層框架,這篇文章主要給大家分享MyBatis入門學習教程(一)-MyBatis快速入門,需要的朋友可以參考下
    2015-08-08
  • Java探索之Hibernate主鍵生成策略詳細介紹

    Java探索之Hibernate主鍵生成策略詳細介紹

    這篇文章主要介紹了Java探索之Hibernate主鍵生成策略詳細介紹,具有一定參考價值,需要的朋友可以了解下。
    2017-10-10
  • java字符串中提取數(shù)字的方法

    java字符串中提取數(shù)字的方法

    Java中提取字符串中的數(shù)字,可以使用正則表達式或非正則表達式的方法,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2023-06-06
  • Java Springboot websocket使用案例詳解

    Java Springboot websocket使用案例詳解

    這篇文章主要介紹了Java Springboot websocket使用案例詳解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-09-09
  • java實現(xiàn)切割wav音頻文件的方法詳解【附外部jar包下載】

    java實現(xiàn)切割wav音頻文件的方法詳解【附外部jar包下載】

    這篇文章主要介紹了java實現(xiàn)切割wav音頻文件的方法,結(jié)合實例形式詳細分析了java切割wav音頻文件的相關(guān)原理、操作技巧與注意事項,并附帶外部jar包供讀者下載,需要的朋友可以參考下
    2019-05-05
  • 一篇文章帶你了解如何正確使用java線程池

    一篇文章帶你了解如何正確使用java線程池

    這篇文章主要介紹了如何正確使用java線程池,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-09-09
  • Java線程池必知必會知識點總結(jié)

    Java線程池必知必會知識點總結(jié)

    這篇文章主要給大家介紹了關(guān)于Java線程池必知必會知識點的相關(guān)資料,文中通過圖文以及實例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2022-02-02
  • Spring MessageSource獲取消息不符合預期的問題解決方案

    Spring MessageSource獲取消息不符合預期的問題解決方案

    最近我參與的產(chǎn)品要做國際化支持,選擇了用Spring MessageSource來實現(xiàn),這個Spring 框架提供的工具使用很簡單,網(wǎng)上有各種教程文章,這里不做贅述,只說一個實際遇到的問題及解決方案,需要的朋友可以參考下
    2024-01-01
  • MyBatis中的XML實現(xiàn)和動態(tài)SQL實現(xiàn)示例詳解

    MyBatis中的XML實現(xiàn)和動態(tài)SQL實現(xiàn)示例詳解

    這篇文章主要介紹了MyBatis中的XML實現(xiàn)和動態(tài)SQL實現(xiàn),我們可以將XML中重復出現(xiàn)的內(nèi)容提取出來放到sql標簽中,當需要用到sql標簽中的內(nèi)容時,用include標簽將sql標簽中的內(nèi)容引進來即可,感興趣的朋友跟隨小編一起看看吧
    2024-02-02
  • Mybatis中and和循環(huán)or混用操作(or轉(zhuǎn)換成in)

    Mybatis中and和循環(huán)or混用操作(or轉(zhuǎn)換成in)

    這篇文章主要介紹了Mybatis中and和循環(huán)or混用操作(or轉(zhuǎn)換成in),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07

最新評論