最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

本節(jié)目標(biāo)

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

P6Spy簡介

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

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

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

拋出問題

首先來看一下 Mybaties-plus 的默認(rèn)輸出:

==>  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ǔ)上進(jìn)行修改。

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的配置
# 應(yīng)用的攔截模塊
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記錄標(biāo)準(zhǔn) 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運(yùn)行的用時

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

相關(guān)文章

  • 詳細(xì)講解Java中==與equals的區(qū)別對比

    詳細(xì)講解Java中==與equals的區(qū)別對比

    這篇文章主要為大家詳細(xì)介紹了Java中==與equals的區(qū)別對比,文中有詳細(xì)的代碼示例供大家參考,具有一定的參考價值,感興趣的同學(xué)可以參考閱讀下
    2023-09-09
  • Jenkins一鍵打包部署SpringBoot應(yīng)用的方法步驟

    Jenkins一鍵打包部署SpringBoot應(yīng)用的方法步驟

    本文主要介紹了使用Jenkins一鍵打包部署SpringBoot應(yīng)用的方法步驟,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • Java使用ArrayList實現(xiàn)撲克牌的示例代碼

    Java使用ArrayList實現(xiàn)撲克牌的示例代碼

    學(xué)習(xí)了關(guān)于集合類的知識,我們可以做一個小項目來加深對集合類知識的學(xué)習(xí)!本文就來利用ArrayList實現(xiàn)撲克牌發(fā)牌洗牌效果,需要的可以參考一下
    2022-10-10
  • SpringBoot+Redis實現(xiàn)不重復(fù)消費(fèi)的隊列的示例代碼

    SpringBoot+Redis實現(xiàn)不重復(fù)消費(fèi)的隊列的示例代碼

    本文主要介紹了SpringBoot+Redis實現(xiàn)不重復(fù)消費(fèi)的隊列的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-07-07
  • IDEA中Spring項目的工程構(gòu)建

    IDEA中Spring項目的工程構(gòu)建

    這篇文章主要介紹了IDEA中Spring項目的工程構(gòu)建,Spring框架是輕量級的JavaEE框架,可以解決企業(yè)應(yīng)用開發(fā)的復(fù)雜性,有兩個核心部分:IOC和Aop,今天來學(xué)習(xí)如何構(gòu)建spring項目,需要的朋友可以參考下
    2023-05-05
  • Java日常練習(xí)題,每天進(jìn)步一點(diǎn)點(diǎn)(41)

    Java日常練習(xí)題,每天進(jìn)步一點(diǎn)點(diǎn)(41)

    下面小編就為大家?guī)硪黄狫ava基礎(chǔ)的幾道練習(xí)題(分享)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧,希望可以幫到你
    2021-07-07
  • 關(guān)于Springboot中JSCH的使用及說明

    關(guān)于Springboot中JSCH的使用及說明

    這篇文章主要介紹了關(guān)于Springboot中JSCH的使用及說明,具有很好的參考價值,希望對大家有所幫助。
    2022-09-09
  • SpringMVC 響應(yīng)數(shù)據(jù)和結(jié)果視圖從環(huán)境搭建到實戰(zhàn)全解析

    SpringMVC 響應(yīng)數(shù)據(jù)和結(jié)果視圖從環(huán)境搭建到實戰(zhàn)全解析

    SpringMVC中,Controller方法的返回值決定了響應(yīng)方式,本文詳細(xì)講解了SpringMVC的開發(fā)環(huán)境搭建、Controller方法返回值分類、轉(zhuǎn)發(fā)與重定向機(jī)制,以及JSON異步交互的實現(xiàn),本文介紹SpringMVC 響應(yīng)數(shù)據(jù)和結(jié)果視圖從環(huán)境搭建到實戰(zhàn)全解析,感興趣的朋友跟隨小編一起看看吧
    2025-11-11
  • Java集合框架源碼分析之LinkedHashMap詳解

    Java集合框架源碼分析之LinkedHashMap詳解

    這篇文章主要介紹了Java集合框架源碼分析之LinkedHashMap詳解,內(nèi)容包括了linkedhashmap的簡介和源碼剖析以及關(guān)于LinkedHashMap的源碼總結(jié),內(nèi)容豐富,需要的朋友可以參考下。
    2017-09-09
  • java實現(xiàn)聯(lián)機(jī)五子棋

    java實現(xiàn)聯(lián)機(jī)五子棋

    這篇文章主要為大家詳細(xì)介紹了java實現(xiàn)聯(lián)機(jī)五子棋,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-05-05

最新評論

新兴县| 江源县| 天长市| 新巴尔虎左旗| 上犹县| 延川县| 阿坝县| 林口县| 桑植县| 中宁县| 莱西市| 玉山县| 荆门市| 无为县| 枣阳市| 深圳市| 南京市| 温州市| 馆陶县| 寿阳县| 石屏县| 石门县| 牡丹江市| 朝阳县| 岑巩县| 洪泽县| 昭觉县| 富裕县| 沙坪坝区| 克东县| 清丰县| 商都县| 宿州市| 郯城县| 澜沧| 东辽县| 镇平县| 柳河县| 华安县| 新野县| 五河县|