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

在MyBatis中實(shí)現(xiàn)控制臺輸出SQL參數(shù)的具體方案

 更新時間:2025年12月26日 09:07:55   作者:hellotutu  
本文介紹了在MyBatis中實(shí)現(xiàn)控制臺輸出SQL參數(shù)的幾種方法,包括使用MyBatis-Plus的SqlLogInterceptor、log4jdbc工具、自定義攔截器以及注意事項(xiàng),需要的朋友可以參考下

在 MyBatis 中實(shí)現(xiàn)控制臺輸出 SQL 參數(shù),可通過以下方案實(shí)現(xiàn):

一、使用 MyBatis-Plus 的 SqlLogInterceptor(推薦)

‌適用場景‌: 項(xiàng)目已集成 MyBatis-Plus(3.5.3+版本)

‌配置步驟‌:

‌1、添加攔截器‌:

@Configuration
public class MyBatisPlusConfig {
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        interceptor.addInnerInterceptor(new SqlLogInterceptor());
        return interceptor;
    }
}

‌2、配置日志輸出‌(application.yml):

mybatis-plus:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

此方案可直接輸出完整 SQL(參數(shù)替換為真實(shí)值)。

二、通過 log4jdbc 工具輸出完整 SQL

‌適用場景‌: 需獨(dú)立查看帶參數(shù)的 SQL,不依賴 MyBatis-Plus
‌步驟‌:

1‌、添加依賴‌:

<dependency>
    <groupId>org.bgee.log4jdbc-log4j2</groupId>
    <artifactId>log4jdbc-log4j2-jdbc4.1</artifactId>
    <version>1.16</version>
</dependency>

‌2、修改 JDBC 驅(qū)動配置‌:

# 原 JDBC URL 前追加 "jdbc:log4jdbc:"
spring:
  datasource:
    url: jdbc:log4jdbc:mysql://localhost:3306/dbname
    driver-class-name: net.sf.log4jdbc.DriverSpy

‌3、配置日志級別‌(logback.xml):

<logger name="jdbc.sqlonly" level="DEBUG"/>  <!-- 僅輸出 SQL -->
<logger name="jdbc.sqltiming" level="INFO"/> <!-- 輸出 SQL 及執(zhí)行時間 -->

此工具支持參數(shù)替換及 SQL 格式化。

三、自定義攔截器輸出參數(shù)(原始 MyBatis)

‌適用場景‌: 需定制化輸出格式
‌實(shí)現(xiàn)步驟‌:

‌1、創(chuàng)建攔截器類‌:

@Intercepts({@Signature(type = Executor.class, method = "update", args = {MappedStatement.class, Object.class}),
             @Signature(type = Executor.class, method = "query", args = {MappedStatement.class, Object.class, RowBounds.class, ResultHandler.class})})
public class SqlParamInterceptor implements Interceptor {
    @Override
    public Object intercept(Invocation invocation) throws Throwable {
        Object parameter = invocation.getArgs()[1];
        // 解析參數(shù)并拼接 SQL
        System.out.println("Params: " + parameter);
        return invocation.proceed();
    }
}

2‌、注冊攔截器‌(mybatis-config.xml):

<plugins>
    <plugin interceptor="com.example.interceptor.SqlParamInterceptor"/>
</plugins>

此方式需自行解析參數(shù)綁定邏輯,靈活性高但實(shí)現(xiàn)復(fù)雜。

四、注意事項(xiàng)

1‌、性能影響‌

輸出完整 SQL 會增加日志量,生產(chǎn)環(huán)境建議關(guān)閉 DEBUG 級別日志。

2、參數(shù)敏感信息‌

若 SQL 含敏感參數(shù)(如密碼),需過濾或脫敏處理。

3‌、IDE 工具支持‌

IDEA 可通過安裝插件(如 MyBatis Log Plugin)直接查看參數(shù)替換后的 SQL。

到此這篇關(guān)于在MyBatis中實(shí)現(xiàn)控制臺輸出SQL參數(shù)的具體方案的文章就介紹到這了,更多相關(guān)MyBatis控制臺輸出SQL參數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論

英山县| 阿坝| 西华县| 宜宾市| 扎囊县| 尖扎县| 安顺市| 铜陵市| 水富县| 益阳市| 乌拉特后旗| 高雄县| 泗水县| 乌恰县| 白山市| 鲁山县| 南汇区| 福清市| 灵山县| 岳阳市| 若尔盖县| 达日县| 葵青区| 左权县| 太保市| 麻栗坡县| 平乡县| 绥江县| 富顺县| 汶上县| 新竹市| 镇远县| 寿宁县| 勃利县| 镇原县| 益阳市| 清河县| 柘城县| 曲水县| 宁武县| 崇左市|