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

關(guān)于設(shè)置Mybatis打印調(diào)試sql的兩種方式

 更新時間:2023年08月28日 09:23:23   作者:RelievedAbility  
這篇文章主要介紹了關(guān)于設(shè)置Mybatis打印調(diào)試sql的兩種方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

設(shè)置Mybatis打印調(diào)試sql的兩種方式

問題描述

在使用mybatis進(jìn)行開發(fā)的時候,由于可以動態(tài)拼接sql,這樣大大方便了我們。

但是也有一定的問題,當(dāng)我們動態(tài)sql拼接的塊很多的時候,我們要想從*mapper.xml中直接找出完整的sql就會非常的難,這個時候經(jīng)常會需要把組合之后的完整sql調(diào)試出來比較好。

下面來看兩種調(diào)試出sql的兩種方式

解決方案

方案1:

網(wǎng)上說的比較多的,之前也是這么用的一種方式

1:首先將ibatis log4j運行級別調(diào)到DEBUG可以在控制臺打印出ibatis運行的sql語句

2:添加如下語句

###顯示SQL語句部分
log4j.logger.com.ibatis=DEBUG
log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=DEBUG
log4j.logger.com.ibatis.common.jdbc.ScriptRunner=DEBUG
log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=DEBUG
log4j.logger.Java.sql.Connection=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG

方案2:

最近發(fā)現(xiàn)的一種方式,方便快捷

在mybatis.cfg.xml中增加如下配置

<settings>中增加
<setting name="logImpl" value="STDOUT_LOGGING" />

這就是mybatis調(diào)試出sql的兩種方式~~~

Mybatis打印sql

我們在使用mybatis開發(fā)過程中,經(jīng)常需要打印sql以及輸入輸出,下面說一下mybatis結(jié)合log4j打印sql的。

1.添加mybatis配置

mybatis的日志打印方式比較多,SLF4J | LOG4J | LOG4J2 | JDK_LOGGING | COMMONS_LOGGING | STDOUT_LOGGING | NO_LOGGING,可以根據(jù)自己的需要進(jìn)行配置。

建議在mybatis.xml中添加如下配置,因為有些web容器(websphere、jboss等)中自帶私有日志,如果我們不配置mybatis默認(rèn)會使用容器私有日志組件,而不是使用log4j

<settings>
		<setting name="logImpl" value="LOG4J"/>
</settings>

2.log4j.xml配置

mybatis日志打印sql,由于我們用的是mybatis3.3,高于mybatis3.2

所以如果需要打印查詢sql、參數(shù)和結(jié)果,則配置如下:  

 <logger name="com.example.mapper" additivity="false">
		<level value="DEBUG" />
		<appender-ref ref="SQL_DEBUG" />
		<appender-ref ref="SQL_INFO" />
		<appender-ref ref="SQL_ERROR" />
	</logger>

其中name中填寫的是mapper中的namespace路徑:預(yù)約模塊的都是com.example.mapper

如果mybatis低于3.2則配置才會需要添加下面的配置

<logger name="com.ibatis" additivity="true"> 
        <level value="DEBUG" /> 
        <appender-ref ref="STDOUT" />
	<appender-ref ref="DEBUG" />
</logger> 
<logger name="java.sql" additivity="true"> 
        <level value="DEBUG" /> 
        <appender-ref ref="STDOUT" />
	<appender-ref ref="DEBUG" />
</logger> 

3.如果需要將sql單獨打印

則添加如下配置

<appender name="SQL_DEBUG" class="org.apache.log4j.DailyRollingFileAppender">
		<param name="File" value="log/sql/debug.log" />
		<param name="DatePattern" value="'.'yyyy-MM-dd'.log'" />
		<layout class="org.apache.log4j.PatternLayout">
			<param name="ConversionPattern" value="[%-5p] [%d{yyyy-MM-dd HH:mm:ss}] %l - %m%n" />
		</layout>
		<filter class="org.apache.log4j.varia.LevelRangeFilter">
			<param name="LevelMin" value="DEBUG" />
			<param name="LevelMax" value="DEBUG" />
		</filter>
	</appender>

4.建議日志additivity屬性配置為false

這樣可以避免日志重復(fù)打印,

當(dāng)然這也需要看情況,如果需要結(jié)合上下文日志來跟蹤問題,可以設(shè)置為true。

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 詳解Spring DeferredResult異步操作使用場景

    詳解Spring DeferredResult異步操作使用場景

    本文主要介紹了Spring DeferredResult異步操作使用場景,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • SpringBoot使用RabbitMQ延時隊列(小白必備)

    SpringBoot使用RabbitMQ延時隊列(小白必備)

    這篇文章主要介紹了SpringBoot使用RabbitMQ延時隊列(小白必備),詳細(xì)的介紹延遲隊列的使用場景及其如何使用,需要的小伙伴可以一起來了解一下
    2019-12-12
  • Java數(shù)據(jù)類型轉(zhuǎn)換詳解

    Java數(shù)據(jù)類型轉(zhuǎn)換詳解

    這篇文章主要講解Java中基本數(shù)據(jù)類型、字符串與其它數(shù)據(jù)類型以及常見的日期類型的轉(zhuǎn)換,希望能給大家做一個參考。
    2016-06-06
  • SpringBoot中使用異步調(diào)度程序的高級方法

    SpringBoot中使用異步調(diào)度程序的高級方法

    本文主要介紹了SpringBoot中使用異步調(diào)度程序的高級方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-07-07
  • Java命令設(shè)計模式詳解

    Java命令設(shè)計模式詳解

    這篇文章主要為大家詳細(xì)介紹了Java命令設(shè)計模式,對命令設(shè)計模式進(jìn)行分析理解,感興趣的小伙伴們可以參考一下
    2016-02-02
  • application.yml和bootstrap.yml不生效的3種解決方案

    application.yml和bootstrap.yml不生效的3種解決方案

    SpringBoot默認(rèn)支持?properties(.properties) 和 YAML(.yml .yaml ) 配置文件,本文主要介紹了application.yml和bootstrap.yml不生效的3種解決方案,具有一定的參考價值,感興趣的可以了解一下
    2024-03-03
  • Spring Boot 防止接口惡意刷新和暴力請求的實現(xiàn)

    Spring Boot 防止接口惡意刷新和暴力請求的實現(xiàn)

    本文主要介紹了Spring Boot 防止接口惡意刷新和暴力請求的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • Mac修改默認(rèn)jdk版本的方法總結(jié)

    Mac修改默認(rèn)jdk版本的方法總結(jié)

    這篇文章主要介紹了Mac修改默認(rèn)jdk版本的相關(guān)資料,文中詳細(xì)介紹了如何將Java版本從Java?17降低到Java?8,并通過修改.bash_profile文件來永久生效,需要的朋友可以參考下
    2024-12-12
  • Java 執(zhí)行CMD命令或執(zhí)行BAT批處理方式

    Java 執(zhí)行CMD命令或執(zhí)行BAT批處理方式

    這篇文章主要介紹了Java 執(zhí)行CMD命令或執(zhí)行BAT批處理方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • springboot+mybatis+枚舉處理器的實現(xiàn)

    springboot+mybatis+枚舉處理器的實現(xiàn)

    在Spring?boot項目開發(fā)中經(jīng)常遇到需要使用枚舉的場景,本文就介紹了springboot+mybatis+枚舉處理器的實現(xiàn),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03

最新評論