mybatisplus開啟sql打印的三種方式匯總
1、在application.yml文件中添加mybatisplus的配置文件
使用mybatisplus自帶的log-impl配置,可以在控制臺(tái)打印出sql語句、執(zhí)行結(jié)果的數(shù)據(jù)集、數(shù)據(jù)結(jié)果條數(shù)等詳細(xì)信息,這種方法適合再調(diào)試的時(shí)候使用,因?yàn)檫@個(gè)展示的信息詳細(xì),更便于調(diào)試,查找問題進(jìn)行優(yōu)化。缺點(diǎn)就是如果執(zhí)行的sql語句過多,則輸出的日志就會(huì)很多,
mybatis-plus: configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl #開啟sql日志
2、在application.yml文件中使用log4j日志框架配置
使用這個(gè)方法可以再控制臺(tái)或者日志文件中打印sql語句,這種方法比較適合再生產(chǎn)環(huán)境種使用,可以避免輸出過多的無用信息,也可以使用日志級(jí)別來控制是否打印sql語句。
//com.example.classroomrealtimefeedback.mapper是你mapper層的包名
logging: level: com.example.classroomrealtimefeedback.mapper: debug
3 、使用P6spy插件
可以再控制臺(tái)中打印出sql語句,并且再控制臺(tái)中將輸出的sql中的?部分替換位真實(shí)運(yùn)行的值,這種方法適合需要復(fù)制sql語句到數(shù)據(jù)庫工具中直接執(zhí)行的場(chǎng)景,也可以通過spyproperties文件來配置是否開啟慢sql記錄、慢sql記錄標(biāo)準(zhǔn)的參數(shù)。該插件有性能損耗,不建議生產(chǎn)環(huán)境使用
引用依賴:
<dependency> <groupId>p6spy</groupId> <artifactId>p6spy</artifactId> <version>3.9.1</version> </dependency>
修改.yml配置文件:
這里的配置是將mysql數(shù)據(jù)庫和這個(gè)插件的配置合一起了。
spring: datasource: driver-class-name: com.p6spy.engine.spy.P6SpyDriver url: jdbc:p6spy:mysql://127.0.0.1:3306/qcby?rewriteBatchedStatements=true&useUnicode=true&characterEncoding=utf-8 #mysql為數(shù)據(jù)庫類型,后面為數(shù)據(jù)庫連接地址,
配置spy.properties文件:
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 deregisterdrivers=true useprefix=true dateformat=yyyy-MM-dd HH:mm:ss # 實(shí)際驅(qū)動(dòng)可多個(gè) #driverlist=org.h2.Driver # 是否開啟慢SQL記錄 outagedetection=true # 慢SQL記錄標(biāo)準(zhǔn) 1 秒 outagedetectioninterval=1
輸出結(jié)果:
可能出現(xiàn)的問題:
- 打印出sql為null,在excludecategories增加commit
- 批量操作不打印sql,去除excludecategories中的batch
到此這篇關(guān)于mybatisplus開啟sql打印的三種方式的文章就介紹到這了,更多相關(guān)mybatisplus開啟sql打印內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java可變個(gè)數(shù)形參的方法實(shí)例代碼
這篇文章主要給大家介紹了關(guān)于Java可變個(gè)數(shù)形參的相關(guān)資料,文中通過圖文以及實(shí)例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用java具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2022-02-02Java多態(tài)(動(dòng)力節(jié)點(diǎn)Java學(xué)院整理)
多態(tài)是指允許不同類的對(duì)象對(duì)同一消息做出響應(yīng)。即同一消息可以根據(jù)發(fā)送對(duì)象的不同而采用多種不同的行為方式。接下來通過本文給大家介紹java多態(tài)相關(guān)知識(shí),感興趣的朋友一起學(xué)習(xí)吧2017-04-04java 基礎(chǔ)之JavaBean屬性命名規(guī)范問題
這篇文章主要介紹了java 基礎(chǔ)之JavaBean屬性命名規(guī)范問題的相關(guān)資料,需要的朋友可以參考下2017-05-05Java編程實(shí)現(xiàn)打印螺旋矩陣實(shí)例代碼
這篇文章主要介紹了Java編程實(shí)現(xiàn)打印螺旋矩陣實(shí)例代碼,具有一定借鑒價(jià)值,需要的朋友可以參考下。2017-12-12Spring?Boot中KafkaListener的介紹、原理和使用方法案例詳解
本文介紹了Spring Boot中 @KafkaListener 注解的介紹、原理和使用方法,通過本文的介紹,我們希望讀者能夠更好地理解Spring Boot中 @KafkaListener 注解的使用方法,并在項(xiàng)目中更加靈活地應(yīng)用2023-09-09Sentinel流控規(guī)則實(shí)現(xiàn)限流保護(hù)詳解
這篇文章主要介紹了Sentinel流控規(guī)則實(shí)現(xiàn)限流保護(hù),Sentinel是一個(gè)分布式系統(tǒng)的流量控制組件,它可以實(shí)現(xiàn)限流,流控,降級(jí)等功能,提高系統(tǒng)的穩(wěn)定性和可靠性,感興趣想要詳細(xì)了解可以參考下文2023-05-05