1. 程式人生 > >MyBatis之控制檯輸出sql-yellowcong

MyBatis之控制檯輸出sql-yellowcong

MyBatis控制檯輸出Sql的方式有兩種,一種是自帶的格式化輸出這種方式對於Mybatis的版本有要求,第二種是,自己手動新增日誌規則的列印方式,這種更加的靈活方便。

第一種方法:通過Mybatis自帶的

Mybatis提供的標準日誌輸出,是在3.2.x版本有,我測試了低版本,就報錯

<!-- mybatis -->
<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis</artifactId>
    <version
>
3.2.6</version> </dependency>

Mybatis標準化輸出打印出來的效果
這裡寫圖片描述

配置mybatis-config.xml

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">

<configuration>

  <settings>        
     <setting
name="defaultExecutorType" value="REUSE" />
<!-- 配置控制檯輸出 --> <setting name="logImpl" value="STDOUT_LOGGING"/> </settings> <typeAliases> </typeAliases> </configuration>

第二種方式:通過配置Log4j

1、配置log4j.properties

通過只配置監聽所有日誌的方式,檢視列印sql的日誌檔案是哪一個類

#測試級別是DEBUG
#日誌 級別 DEBUG -->INFO -->WARN -->ERROR
log4j.rootLogger=DEBUG,Console

#Console
#日誌的輸出格式
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n

2、執行測試類,檢視日誌資訊

分析日誌,我們發現列印sql語句的是druid.sql.Statement這個類,而且多了一些不需要的spring的日誌
這裡寫圖片描述

3、修改log4j.properties配置

1、提升spring日誌的列印等級
2、新增druid.sql.Statement 的監控,去掉druid.sql包下面的其他類的監控

#測試級別是Warn
#日誌 級別 DEBUG -->INFO -->WARN -->ERROR
log4j.rootLogger=DEBUG,Console

#Console
#日誌的輸出格式
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n

#指定Spring的日誌級別是WARN
log4j.logger.org.springframework=WARN

#指定監測druid.sql.Statement 的日誌情況
#只監聽指定類 
#INFO 表示日誌的級別
#DRUID 是這個監聽的類的日誌配置的名稱,用於下面 指定日誌格式用
#這種是監聽druid.sql 包下面的所有類
log4j.logger.druid.sql=INFO,DRUID
#控制檯輸出
log4j.appender.DRUID=org.apache.log4j.ConsoleAppender
#指定輸出的樣式
log4j.appender.DRUID.layout=org.apache.log4j.PatternLayout
log4j.appender.DRUID.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n

日誌結果,大家會發現,沒有spring的那些日誌輸出資訊了,只有durid.sql包下面的日誌了
這裡寫圖片描述

只需要druid.sql.Statement的日誌

修改 日誌配置檔案

指定新的日誌規則

下面這種方式是,重新建立了一個日誌的規則,用來專門處理Statement這個類

#測試級別是Warn
#日誌 級別 DEBUG -->INFO -->WARN -->ERROR
log4j.rootLogger=DEBUG,Console

#Console
#日誌的輸出格式
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n

#指定Spring的日誌級別是WARN
log4j.logger.org.springframework=WARN


#日誌級別是WARN才可以顯示
log4j.logger.druid.sql.Connection=WARN
log4j.logger.druid.sql.ResultSet=WARN
#指定監測druid.sql.Statement 的日誌情況
#只監聽指定類 
#INFO 表示日誌的級別
#DRUID 是這個監聽的類的日誌配置的名稱,用於下面 指定日誌格式用
log4j.logger.druid.sql.Statement=DEBUG,DRUID
#控制檯輸出
log4j.appender.DRUID=org.apache.log4j.ConsoleAppender
#指定輸出的樣式
log4j.appender.DRUID.layout=org.apache.log4j.PatternLayout
log4j.appender.DRUID.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n

大家再看一下日誌檔案,發現只剩下Statement 的日誌檔案了
這裡寫圖片描述

直接使用原來樣式的方式

可以將上面的日誌檔案改寫一下,使用原來的日誌輸出方式

#測試級別是Warn
#日誌 級別 DEBUG -->INFO -->WARN -->ERROR
log4j.rootLogger=DEBUG,Console

#Console
#日誌的輸出格式
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n

#指定Spring的日誌級別是WARN
log4j.logger.org.springframework=WARN


#日誌級別是WARN才可以顯示
log4j.logger.druid.sql.Connection=WARN
log4j.logger.druid.sql.ResultSet=WARN
#指定監測druid.sql.Statement 的Debug 級別
#使用上面配置的日誌輸出方式
log4j.logger.druid.sql.Statement=DEBUG

發現只剩下Statement的日誌檔案了,但問題是好像日誌比原來更少了
這裡寫圖片描述

相關推薦

MyBatis控制檯輸出sql-yellowcong

MyBatis控制檯輸出Sql的方式有兩種,一種是自帶的格式化輸出這種方式對於Mybatis的版本有要求,第二種是,自己手動新增日誌規則的列印方式,這種更加的靈活方便。 第一種方法:通過Mybatis自帶的 Mybatis提供的標準日誌輸出,是在3.

mybatis控制檯輸出SQL執行語句

log4j啥的輸出語句,mybatis配置一下配置檔案就可以啦。在mybatis-config.xml中新增如下兩行程式碼就可以,網上有的說只新增最後一行,經嘗試不列印。兩行都填加才打印。 <settings>         <setting name=

SpringBoot+MyBatis控制檯輸出sql語句

1.如果使用application.properties 在配置中新增: logging.level.com.looedu.mapper=debug 格式:logging.level.Mapper類的包=debug 2.如果使用application.yml 在

SpringBoot 整合Mybatis控制檯輸出sql語句

SpringBoot整合Mybatis極大的加快了開發速度。但是時間長了發現一個問題,sql不論執行的錯與對,控制檯都看不到當前執行的sql資訊,多有不便。 在application.yml進行以下配置即可: logging: level: com.sicme

MyBatis控制檯輸出SQL語句

用過Hibernate的都知道,我們可以設定Showsql屬性來達到在控制檯輸出SQL語句方便我們除錯的目的,當然MyBatis也可以 這是MyBatis官方文件的一條屬性,我們只要在settings裡面設定它為我們使用的日誌應用的名字就好,比如我用了LOG4J,那麼屬

mybatis如何在控制檯輸出sql語句

如果專案中沒有設定logback.xml檔案,則直接加入這三個jar包,就可以 如果專案本身已經設定了logback.xml檔案,則在檔案中需要加入 <!-- project default level --> <logger name=

mybatis 結合 logback 在控制檯輸出 sql 語句 (自用)

        由於工作需要,自己希望在控制檯打印出 sql 執行語句(公司 log 日誌沒有)。參考了很多文章。都沒有得到解決的辦法。也浪費了很多的時間。最終經過自己的不懈努力終於找到了解決的辦法。 感謝博主分享  參考網站 而我用到的只有一行    <lo

SpringBoot Mybatis控制檯列印SQL語句

列印SQL語句需要在 application.properties  檔案中進行配置 #列印sql logging.level.com.hz.controller=WARN  #控制器層 logging.level.com.hz.mapper=DEBUG  #D

Mybatis 開啟控制檯列印sql語句

springboot+mybatis整合過程中,開啟控制檯sql語句列印的兩種方式: 方法一: 1.在mybatis的配置檔案中新增: <settings> <!-- 列印sql日誌 --> <setting name="l

mybatis多條件sql的實現的兩種方式

首先稍微補充一下用註解首先sql功能(一般不用這種方法) 原理如下: 檔案圖 實現多條件sql的兩種方式的具體實現程式碼: mybatis.xml <?xml version="1.0" encoding="UTF-8" ?

Mybatis控制檯列印sql

搜尋資料只能利用log4j實現 這裡只是添加了一些說明 網上log4j.properties檔案中mybatis列印sql的配置 #DEBUG < INFO < WARN < ERROR < FATAL ### set

Mybatis輸入輸出對映(共三種類型)

一、輸入parameterType輸出resultType型別(resultType:列名和pojo中的屬性名要一致) Mybatis使用ognl表示式解析物件欄位的值,#{}或者${}括號中的值為pojo屬性名稱,其中,#{}:佔位符號,相對於?,${}:sql拼接符號,相對於String

log4j的使用以及mybatis控制檯列印sql語句

正確的log4j寫法:#定義LOG輸出級別log4j.rootLogger=DEBUG,Console,File#定義日誌輸出目的地為控制檯log4j.appender.Console=org.apache.log4j.ConsoleAppenderlog4j.append

mybatis控制檯輸出執行語句

log4j啥的輸出語句,mybatis配置一下配置檔案就可以啦。在mybatis-config.xml中新增如下兩行程式碼就可以,網上有的說只新增最後一行,經嘗試不列印。兩行都填加才打印。<settings>

配置 log4j 在控制檯輸出 sql 語句

<span style="font-family:SimSun;font-size:18px;">#### direct log messages to stdout ### log4j.

Mybatis動態構建SQL語句

1.@SelectProvider[email protected]3.@UpdateProvider[email protected]http://www.cnblogs.com/zhangminghui/p/4903351.html

MyBatis3 用log4j在控制檯輸出 SQL

為什麼要在控制檯輸出 SQL 呢?當然是為了開發除錯的時候方便了。如果一個 資料庫相關的操作出現了問題,我們可以根據輸出的SQL語句快速排查問題。輸出的資訊:[org.mybatis.spring.SqlSessionUtils]-Creating a new SqlSess

Mybatis控制檯顯示sql語句配置檔案

在log4j.properties配置內容如下: 方法一: log4j.rootLogger=debug,stdout,logfile log4j.appender.stdout=org.apache

mybatis控制檯顯示sql語句

log4j.rootCategory=info, stdout , R log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout lo

mybatis 動態 SQL

if mybatis _parameter _databaseid 動態 sql 1、動態 SQL 簡介: 動態 SQL 是 MyBatis 強大特性之一。極大的簡化我們拼裝 SQL 的操作。 動態 SQL 元素和使用 JSTL 或者其他類似基於 XML 的文本處理器相似。