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

mybatis-plus配置控制臺(tái)打印完整帶參數(shù)SQL語句的實(shí)現(xiàn)

 更新時(shí)間:2020年08月25日 11:46:35   作者:Moshow鄭鍇  
這篇文章主要介紹了mybatis-plus配置控制臺(tái)打印完整帶參數(shù)SQL語句,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

問題背景

通常我們開發(fā)的時(shí)候,需要聯(lián)合控制臺(tái)和Navicat/PLSQL等工具進(jìn)行語句的拼接檢查,如果只是輸出了一堆???,那么將極大降低我們的效率。因此我們需要輸出完整的SQL語句以便調(diào)試。

update 2020-July : 新增官方p6spy打印分析sql語句方案

解決方案(StdOutImpl)

請(qǐng)注意: 部分朋友反饋不生效,估計(jì)跟引入的包有一定關(guān)系,druid+mybatis-plus-boot-starter 就親測(cè)有用。請(qǐng)檢查是否有l(wèi)og4j相關(guān)實(shí)現(xiàn)類。

如果是application.yml

#by zhengkai.blog.csdn.net
#mybatis-plus配置控制臺(tái)打印完整帶參數(shù)SQL語句
mybatis-plus:
 configuration:
 log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

如果是application.properties,添加:

#mybatis-plus配置控制臺(tái)打印完整帶參數(shù)SQL語句
mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl

Mybatis內(nèi)置的日志工廠提供日志功能,具體的日志實(shí)現(xiàn)有以下幾種方式:

  • SLF4J
  • Apache Commons Logging
  • Log4j 2
  • Log4j
  • JDK logging
  • no logging

具體選擇哪個(gè)日志實(shí)現(xiàn)由MyBatis的LogFactory內(nèi)置日志工廠確定。它會(huì)使用最先找到的(按上文列舉的順序查找)。 如果一個(gè)都未找到,日志功能就會(huì)被禁用。

 static {
  tryImplementation(LogFactory::useSlf4jLogging);
  tryImplementation(LogFactory::useCommonsLogging);
  tryImplementation(LogFactory::useLog4J2Logging);
  tryImplementation(LogFactory::useLog4JLogging);
  tryImplementation(LogFactory::useJdkLogging);
  tryImplementation(LogFactory::useNoLogging);
 }

不少應(yīng)用服務(wù)器的classpath中已經(jīng)包含Commons Logging,如Tomcat和WebShpere, 所以MyBatis會(huì)把它作為具體的日志實(shí)現(xiàn)。

記住這點(diǎn)非常重要。這意味著,在諸如 WebSphere的環(huán)境中——WebSphere提供了Commons Logging的私有實(shí)現(xiàn),你的Log4J配置將被忽略。

這種做法不免讓人悲摧,MyBatis怎么能忽略你的配置呢?事實(shí)上,因Commons Logging已經(jīng)存 在,按優(yōu)先級(jí)Log4J自然就被忽略了!

控制臺(tái)輸出

--- [ XNIO-1 task-12] c.s.cms.controller.IndexController       : username-admin-password-123456-****
Creating a new SqlSession
SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@708e9ffd] was not registered for synchronization because synchronization is not active
--- [ XNIO-1 task-12] com.alibaba.druid.pool.DruidDataSource   : {dataSource-1} inited
JDBC Connection [com.alibaba.druid.proxy.jdbc.ConnectionProxyImpl@62b13210] will not be managed by Spring
==>  Preparing: select * from user t where t.user_code='admin' and t.password='123456'
==> Parameters:
<==    Columns: user_id, user_code, create_date, modify_date, user_name, password, status, role_id, department_id, major_id, classes_id, year
<==        Row: 1, admin, 2020-02-15 22:14:32, 2020-02-18 23:38:51, Moshow K ZHENG, 123456, 1, 9, 1, 13, 113, 2020
<==      Total: 1
Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@708e9ffd]
 

解決方案2(手寫一個(gè)MybatisPlusOutImpl)

配置文件

mybatis-plus:
 configuration:
# log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
# 改為自己寫的
 log-impl: com.softdev.system.config.MybatisPlusOutImpl

java類 MybatisPlusOutImpl

package com.softdev.system.config;

import org.apache.ibatis.logging.Log;
/**
 * @Description MybatisPlusOutImpl,直接使用控制臺(tái)輸出日志
 * @Author zhengkai.blog.csdn.net
 **/
public class MybatisPlusOutImpl implements Log {
 public MybatisPlusOutImpl(String clazz) {
  System.out.println("MybatisPlusOutImpl::"+clazz);
 }

 public boolean isDebugEnabled() {
  return true;
 }

 public boolean isTraceEnabled() {
  return true;
 }

 public void error(String s, Throwable e) {
  System.err.println(s);
  e.printStackTrace(System.err);
 }

 public void error(String s) {
  System.err.println("MybatisPlusOutImpl::"+s);
 }

 public void debug(String s) {
  System.out.println("MybatisPlusOutImpl::"+s);
 }

 public void trace(String s) {
  System.out.println("MybatisPlusOutImpl::"+s);
 }

 public void warn(String s) {
  System.out.println("MybatisPlusOutImpl::"+s);
 }
}

官方解決方案p6spy

查看p6spy最新版本 ,請(qǐng)注意,該方案為侵入式的JDBC級(jí)方案。

pom.xml引入

<!-- https://mvnrepository.com/artifact/p6spy/p6spy -->
<dependency>
 <groupId>p6spy</groupId>
 <artifactId>p6spy</artifactId>
 <version>3.9.1</version>
</dependency>

這是yaml版本,還沒試過,待我實(shí)驗(yàn)一下.

spring:
 datasource:
 driver-class-name: com.p6spy.engine.spy.P6SpyDriver
 url: jdbc:p6spy:h2:mem:test
 ...

這是官方提供的properties版本

#3.2.1以上使用
modulelist=com.baomidou.mybatisplus.extension.p6spy.MybatisPlusLogFactory,com.p6spy.engine.outage.P6OutageFactory
#3.2.1以下使用或者不配置
#modulelist=com.p6spy.engine.logging.P6LogFactory,com.p6spy.engine.outage.P6OutageFactory
# 自定義日志打印
logMessageFormat=com.baomidou.mybatisplus.extension.p6spy.P6SpyLogger
#日志輸出到控制臺(tái)
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
# 實(shí)際驅(qū)動(dòng)可多個(gè)
#driverlist=org.h2.Driver
# 是否開啟慢SQL記錄
outagedetection=true
# 慢SQL記錄標(biāo)準(zhǔn) 2 秒
outagedetectioninterval=2

到此這篇關(guān)于mybatis-plus配置控制臺(tái)打印完整帶參數(shù)SQL語句的文章就介紹到這了,更多相關(guān)mybatis-plus 打印帶參數(shù)SQL內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • IDEA一鍵生成方法的序列圖神操作

    IDEA一鍵生成方法的序列圖神操作

    為了能夠更快更清晰地搞清對(duì)象之間的調(diào)用關(guān)系,我經(jīng)常需要用到序列圖。手動(dòng)畫序列圖還是很麻煩費(fèi)時(shí)的,不過?IDEA?提供了一個(gè)叫做SequenceDiagram?的插件幫助我們解決這個(gè)問題。通SequenceDiagram?這個(gè)插件,我們一鍵可以生成時(shí)序圖
    2022-01-01
  • Spring中SpEL表達(dá)式的使用全解

    Spring中SpEL表達(dá)式的使用全解

    SpEL是Spring框架中用于表達(dá)式語言的一種方式,本文主要介紹了Spring中SpEL表達(dá)式的使用全解,文中通過示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-04-04
  • 詳解Java中實(shí)現(xiàn)SHA1與MD5加密算法的基本方法

    詳解Java中實(shí)現(xiàn)SHA1與MD5加密算法的基本方法

    這篇文章主要介紹了詳解Java中實(shí)現(xiàn)SHA1與MD5加密算法的基本方法,安全哈希算法第一版和消息摘要算法第五版也是通常人們最常用的加密算法,需要的朋友可以參考下
    2016-04-04
  • Java實(shí)現(xiàn)HttpGet請(qǐng)求傳body參數(shù)

    Java實(shí)現(xiàn)HttpGet請(qǐng)求傳body參數(shù)

    這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)HttpGet請(qǐng)求傳body參數(shù)的相關(guān)知識(shí),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-02-02
  • 詳解IDEA自定義注釋模板(javadoc)

    詳解IDEA自定義注釋模板(javadoc)

    這篇文章主要介紹了詳解IDEA自定義注釋模板(javadoc),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-04-04
  • mybatis利用association或collection傳遞多參數(shù)子查詢

    mybatis利用association或collection傳遞多參數(shù)子查詢

    今天小編就為大家分享一篇關(guān)于mybatis利用association或collection傳遞多參數(shù)子查詢,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • SpringBoot使用Netty實(shí)現(xiàn)遠(yuǎn)程調(diào)用的示例

    SpringBoot使用Netty實(shí)現(xiàn)遠(yuǎn)程調(diào)用的示例

    這篇文章主要介紹了SpringBoot使用Netty實(shí)現(xiàn)遠(yuǎn)程調(diào)用的示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • SpringBoot2 Jpa 批量刪除功能的實(shí)現(xiàn)

    SpringBoot2 Jpa 批量刪除功能的實(shí)現(xiàn)

    這篇文章主要介紹了SpringBoot2 Jpa 批量刪除功能的實(shí)現(xiàn),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • IDEA 開發(fā)配置SparkSQL及簡(jiǎn)單使用案例代碼

    IDEA 開發(fā)配置SparkSQL及簡(jiǎn)單使用案例代碼

    這篇文章主要介紹了IDEA 開發(fā)配置SparkSQL及簡(jiǎn)單使用案例代碼,本文通過代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-08-08
  • Idea 2023.2.5配置插件、Maven的過程

    Idea 2023.2.5配置插件、Maven的過程

    這篇文章主要介紹了Idea 2023.2.5配置插件、Maven的過程,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2023-11-11

最新評(píng)論

高淳县| 元江| 山西省| 都匀市| 斗六市| 中卫市| 正安县| 宝清县| 南江县| 淮阳县| 怀宁县| 甘谷县| 义乌市| 潮州市| 阿图什市| 岗巴县| 曲阜市| 怀安县| 罗甸县| 吴忠市| 呼图壁县| 海宁市| 嫩江县| 淮南市| 天等县| 湛江市| 安庆市| 家居| 遂平县| 黄石市| 老河口市| 甘孜县| 汝州市| 安徽省| 安国市| 黄大仙区| 墨竹工卡县| 石狮市| 清涧县| 即墨市| 东山县|