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

如何開啟控制臺輸出mybatis執(zhí)行的sql日志問題

 更新時間:2023年09月22日 10:05:49   作者:葉楓^_^  
這篇文章主要介紹了如何開啟控制臺輸出mybatis執(zhí)行的sql日志問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

開啟控制臺輸出mybatis執(zhí)行的sql日志

開發(fā)時,輸出mybatis log,有助于快速定位sql問題,下面簡述添加配置,打開mybatis log

首先在配置文件application.properties中添加下面配置項(xiàng)

application.properties

然后再mybatis-config.xml中添加配置項(xiàng)如下:

<setting name="logImpl" value="org.apache.ibatis.logging.stdout.StdOutImpl" />

重新啟動項(xiàng)目,控制臺就能看到mybatis執(zhí)行的sql Log了。

mybatis輸出SQL日志問題

在開發(fā)環(huán)境調(diào)試代碼,往往需要打印執(zhí)行的SQL語句來判斷mybatis的SQL語句是否符合預(yù)期,尤其是我們的SQL語句使用了較多的<if>標(biāo)簽時,只有真正的執(zhí)行到了mybatis的標(biāo)簽解析器后,才能生成最終的SQL語句;

當(dāng)遇到SQL語句看似解析正常但是執(zhí)行的時候卻報錯,在這個時候如果mybatis本身的SQL日志沒有打印,將會是非常頭疼的。

介紹幾種獲取最終執(zhí)行的SQL語句的方法;

1. 斷點(diǎn)Mybatis的源碼

org.apache.ibatis.mapping.MappedStatement#getBoundSql

可以查看具體執(zhí)行的SQL和參數(shù)信息;

2. 在Mybatis的配置文件mybatis-config.xml添加相關(guān)配置

(1)第一步:mybatis-config.xml當(dāng)中添加對應(yīng)的setting,增加日志輸出。

(2)第二步:<setting name="logImpl" value="STDOUT_LOGGING"/>

<?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>
	<!--以上省略-->
    <properties>
        <property name="dialect" value="mysql"/>
    </properties>
    <settings>
        <setting name="logImpl" value="STDOUT_LOGGING"/>
    </settings>
 	<!--以下省略-->
    <plugins>
        <plugin interceptor="com.AA.framework.mybatis.singleton.SlaverPlugin"/>
    </plugins>
</configuration>

具體日志的輸出,可以看到具體的SQL和對應(yīng)的參數(shù):

可以看到,sql的statement和parameter是分開的,在參數(shù)較多語句較復(fù)雜的情況下,不方便copy出來拿到MYSQL可視化工具中執(zhí)行;

此時,可以通過在IDEA的plugin market查找Mybatis Log Plugin來自動生成可執(zhí)行的SQL語句;

右鍵Tool在控制臺打開Mybatis Log Free的標(biāo)簽,然后點(diǎn)擊,效果如下:

如果工程基于自封裝的springboot且做了去xml化,工程中就找不到mybatis-config.xml配置文件;

mybatis-config一般放在dal模塊,是用來裝飾SqlSessionFactory這個bean的,如設(shè)置插件Plugin、數(shù)據(jù)源DataSource、Mapper文件對應(yīng)的xml路徑等配置,

這時候我們需要找到這個Bean(SqlSessionFactory),在創(chuàng)建Bean的代碼中去設(shè)置logImpl即可:

3. Springboot+Mybatis工程通過配置文件輸出SQL日志

總結(jié)

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

相關(guān)文章

  • Springboot集成Springbrick實(shí)現(xiàn)動態(tài)插件的步驟詳解

    Springboot集成Springbrick實(shí)現(xiàn)動態(tài)插件的步驟詳解

    這篇文章主要介紹了Springboot集成Springbrick實(shí)現(xiàn)動態(tài)插件的詳細(xì)過程,文中的流程通過代碼示例介紹的非常詳細(xì),感興趣的同學(xué)可以參考一下
    2023-06-06
  • Java之CountDownLatch原理全面解析

    Java之CountDownLatch原理全面解析

    這篇文章主要介紹了Java之CountDownLatch原理解析,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • gradle和maven有哪些區(qū)別

    gradle和maven有哪些區(qū)別

    這篇文章主要介紹了gradle和maven有哪些區(qū)別,幫助大家更好的理解和選擇java程序的構(gòu)建工具,感興趣的朋友可以了解下
    2021-01-01
  • springboot集成Swagger的方法(讓你擁有屬于自己的api管理器)

    springboot集成Swagger的方法(讓你擁有屬于自己的api管理器)

    在大型的項(xiàng)目中,如果你有非常多的接口需要統(tǒng)一管理,或者需要進(jìn)行接口測試,那么我們通常會在繁雜地api中找到需要進(jìn)行測試或者管理的接口,接下來通過本文給大家介紹springboot集成Swagger的方法讓你擁有屬于自己的api管理器,感興趣的朋友一起看看吧
    2021-11-11
  • java線程之使用Runnable接口創(chuàng)建線程的方法

    java線程之使用Runnable接口創(chuàng)建線程的方法

    本篇文章介紹了,java中使用Runnable接口創(chuàng)建線程的方法。需要的朋友參考下
    2013-05-05
  • SpringBoot整合Mybatis簡單實(shí)現(xiàn)增刪改查

    SpringBoot整合Mybatis簡單實(shí)現(xiàn)增刪改查

    這篇文章主要介紹了SpringBoot整合Mybatis簡單實(shí)現(xiàn)增刪改查,文章為圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-08-08
  • 四個Java必須知道的負(fù)載均衡算法分享

    四個Java必須知道的負(fù)載均衡算法分享

    我們在設(shè)計系統(tǒng)的時候,為了系統(tǒng)的高擴(kuò)展性,會創(chuàng)建無狀態(tài)的系統(tǒng)。但是,要使系統(tǒng)具有更好的可擴(kuò)展性,除了無狀態(tài)設(shè)計之外,還要考慮采用什么負(fù)載均衡算法,本文就帶領(lǐng)大家認(rèn)識以下常見的4種負(fù)載均衡算法
    2023-01-01
  • Spring?Boot?Actuator?漏洞利用小結(jié)

    Spring?Boot?Actuator?漏洞利用小結(jié)

    spring對應(yīng)兩個版本,分別是Spring Boot 2.x和Spring Boot 1.x,因此后面漏洞利用的payload也會有所不同,這篇文章主要介紹了Spring?Boot?Actuator?漏洞利用小結(jié),需要的朋友可以參考下
    2023-11-11
  • LinkedList學(xué)習(xí)示例模擬堆棧與隊列數(shù)據(jù)結(jié)構(gòu)

    LinkedList學(xué)習(xí)示例模擬堆棧與隊列數(shù)據(jù)結(jié)構(gòu)

    這篇文章主要介紹了LinkedList學(xué)習(xí)示例,模擬一個堆棧與隊列數(shù)據(jù)結(jié)構(gòu),大家參考使用吧
    2014-01-01
  • jdk7 中HashMap的知識點(diǎn)總結(jié)

    jdk7 中HashMap的知識點(diǎn)總結(jié)

    HashMap的原理是老生常談了,不作仔細(xì)解說。一句話概括為HashMap是一個散列表,它存儲的內(nèi)容是鍵值對(key-value)映射。這篇文章主要總結(jié)了關(guān)于jdk7 中HashMap的知識點(diǎn),需要的朋友可以參考借鑒,一起來看看吧。
    2017-01-01

最新評論