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

在MyBatis中開啟SQL日志的具體步驟

 更新時(shí)間:2025年11月21日 09:19:14   作者:chxii  
文章詳細(xì)介紹了在原生MyBatis和SpringBoot中開啟MyBatis日志的具體步驟,包括引入日志依賴、配置日志文件和設(shè)置日志級(jí)別,文章還提供了對(duì)比總結(jié)和常見問題解答,幫助讀者更好地理解和配置MyBatis日志,需要的朋友可以參考下

一、單獨(dú)使用 MyBatis(原生)如何開啟日志

步驟 1:引入日志依賴(以 Log4j2 為例)

MyBatis 本身不包含日志實(shí)現(xiàn),需自行引入。推薦使用 Log4j2SLF4J + Logback

Maven 依賴(Log4j2):

<dependencies>
    <!-- MyBatis -->
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
        <version>3.5.13</version>
    </dependency>
 
    <!-- MySQL 驅(qū)動(dòng) -->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.33</version>
    </dependency>
 
    <!-- Log4j2 核心 -->
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-core</artifactId>
        <version>2.20.0</version>
    </dependency>
 
    <!-- Log4j2 API -->
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-api</artifactId>
        <version>2.20.0</version>
    </dependency>
</dependencies>

不要引入 slf4j 相關(guān)依賴,避免日志橋接沖突(除非你明確使用 SLF4J)。

步驟 2:配置日志文件(log4j2.xml)

src/main/resources 下創(chuàng)建 log4j2.xml

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
  <Appenders>
    <Console name="Console" target="SYSTEM_OUT">
      <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
    </Console>
  </Appenders>
 
  <Loggers>
    <!-- 關(guān)鍵:將你的 Mapper 接口所在包設(shè)為 DEBUG 級(jí)別 -->
    <Logger name="com.example.mapper" level="debug" additivity="false">
      <AppenderRef ref="Console"/>
    </Logger>
 
    <Root level="info">
      <AppenderRef ref="Console"/>
    </Root>
  </Loggers>
</Configuration>

? name="com.example.mapper" 必須替換為你實(shí)際的 Mapper 接口包路徑!

步驟 3:確保 MyBatis 能識(shí)別日志實(shí)現(xiàn)

MyBatis 會(huì)自動(dòng)探測(cè)已引入的日志框架。只要正確引入了 Log4j2 依賴,無需額外配置。

可選:強(qiáng)制指定日志實(shí)現(xiàn)(一般不需要)

System.setProperty("org.apache.ibatis.logging.LogFactory", 
                   "org.apache.ibatis.logging.log4j2.Log4j2Impl");

效果驗(yàn)證

運(yùn)行以下代碼:

try (SqlSession session = MyBatisUtil.openSession()) {
    UserMapper mapper = session.getMapper(UserMapper.class);
    User user = mapper.findById(1);
    System.out.println(user);
}

控制臺(tái)將輸出:

15:30:22.123 [main] DEBUG c.e.m.UserMapper.findById - ==>  Preparing: SELECT id, username, email FROM user WHERE id = ?
15:30:22.150 [main] DEBUG c.e.m.UserMapper.findById - ==> Parameters: 1(Integer)
15:30:22.180 [main] DEBUG c.e.m.UserMapper.findById - <==      Total: 1

二、Spring Boot 中如何開啟 MyBatis 日志

Spring Boot 默認(rèn)使用 SLF4J + Logback,配置極其簡(jiǎn)單。

步驟 1:確認(rèn)依賴

確保已引入 mybatis-spring-boot-starter

<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>3.0.3</version>
</dependency>

該 starter 已自動(dòng)引入 SLF4J 和 Spring Boot 日志支持。

步驟 2:配置 application.yml

application.yml 中設(shè)置 Mapper 接口包的日志級(jí)別為 debug

logging:
  level:
    # 替換為你的 Mapper 接口所在包
    com.example.mapper: debug

? 無需配置 logback.xml,除非有特殊格式需求。

效果驗(yàn)證

調(diào)用 Service 方法:

@RestController
public class UserController {
    @Autowired
    private UserMapper userMapper;
 
    @GetMapping("/user/{id}")
    public User getUser(@PathVariable Integer id) {
        return userMapper.findById(id); // 自動(dòng)輸出 SQL 日志
    }
}

控制臺(tái)輸出:

2025-11-20 15:40:00.123 DEBUG 12345 --- [nio-8080-exec-1] c.e.m.UserMapper.findById : ==>  Preparing: SELECT id, username, email FROM user WHERE id = ?
2025-11-20 15:40:00.150 DEBUG 12345 --- [nio-8080-exec-1] c.e.m.UserMapper.findById : ==> Parameters: 1(Integer)
2025-11-20 15:40:00.180 DEBUG 12345 --- [nio-8080-exec-1] c.e.m.UserMapper.findById : <==      Total: 1

三、對(duì)比總結(jié)

項(xiàng)目原生 MyBatisSpring Boot + MyBatis
日志框架需手動(dòng)引入(Log4j2/Logback)自動(dòng)使用 SLF4J + Logback
配置方式編寫 log4j2.xml 或 logback.xml在 application.yml 中設(shè)置 logging.level
關(guān)鍵配置項(xiàng)<Logger name="mapper包路徑" level="debug">logging.level.com.your.mapper=debug
是否需要額外代碼否(依賴自動(dòng)探測(cè))
推薦場(chǎng)景獨(dú)立工具、非 Spring 項(xiàng)目Web 應(yīng)用、微服務(wù)

四、常見問題

Q1:為什么設(shè)置了日志級(jí)別還是看不到 SQL?

  • 檢查包路徑是否完全匹配(區(qū)分大小寫)
  • 確認(rèn)是 Mapper 接口的包路徑,不是 XML 文件路徑
  • 原生項(xiàng)目檢查是否引入了正確的日志實(shí)現(xiàn)依賴

Q2:能否只打印 SQL 不打印結(jié)果?

可以,降低 ResultSetHandler 日志級(jí)別:

# Spring Boot
logging:
  level:
    com.example.mapper: debug
    org.apache.ibatis.executor.resultset: warn

Q3:生產(chǎn)環(huán)境是否應(yīng)關(guān)閉?

強(qiáng)烈建議關(guān)閉

# application-prod.yml
logging:
  level:
    com.example.mapper: info  # 或 warn/error

避免性能損耗和敏感信息泄露。

結(jié)語(yǔ)

無論是原生 MyBatis 還是 Spring Boot 集成,開啟 SQL 日志的核心都是:將 Mapper 接口所在包的日志級(jí)別設(shè)為 DEBUG。

以上就是在MyBatis中開啟SQL日志的具體步驟的詳細(xì)內(nèi)容,更多關(guān)于MyBatis開啟SQL日志的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Java中@Autowired和@Resource區(qū)別

    Java中@Autowired和@Resource區(qū)別

    本文主要介紹了Java中@Autowired和@Resource區(qū)別,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • 詳解SpringBoot配置devtools實(shí)現(xiàn)熱部署

    詳解SpringBoot配置devtools實(shí)現(xiàn)熱部署

    本篇文章主要介紹了詳解SpringBoot配置devtools實(shí)現(xiàn)熱部署 ,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-05-05
  • 超詳細(xì)解釋Java反射

    超詳細(xì)解釋Java反射

    本文非常詳細(xì)的講解了java反射具體的內(nèi)容以及使用,java反射在現(xiàn)今的使用中很頻繁,希望此文可以幫大家解答疑惑,可以幫助大家理解
    2021-11-11
  • 如何修改json字符串中某個(gè)key對(duì)應(yīng)的value值

    如何修改json字符串中某個(gè)key對(duì)應(yīng)的value值

    這篇文章主要介紹了如何修改json字符串中某個(gè)key對(duì)應(yīng)的value值操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • ruoyi-springboot框架新增模塊調(diào)接口報(bào)404的解決方案

    ruoyi-springboot框架新增模塊調(diào)接口報(bào)404的解決方案

    這篇文章主要介紹了ruoyi-springboot框架新增模塊調(diào)接口報(bào)404的解決方案,文中通過代碼示例給大家講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-03-03
  • 如何使用Mockito調(diào)用靜態(tài)方法和void方法

    如何使用Mockito調(diào)用靜態(tài)方法和void方法

    這篇文章主要介紹了如何使用Mockito調(diào)用靜態(tài)方法和void方法的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • SpringBoot整合Lombok及常見問題解決

    SpringBoot整合Lombok及常見問題解決

    本文主要介紹了SpringBoot整合Lombok及常見問題解決,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-04-04
  • Spring?Cloud?Eureka?搭建?&?集群方式

    Spring?Cloud?Eureka?搭建?&?集群方式

    這篇文章主要介紹了Spring?Cloud?Eureka?搭建?&?集群方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • Spring Mybatis 基本使用過程(推薦)

    Spring Mybatis 基本使用過程(推薦)

    Mybatis是一個(gè)半自動(dòng)ORM(Object Relational Mapping)框架,它可以簡(jiǎn)化數(shù)據(jù)庫(kù)編程,讓開發(fā)者更專注于SQL本身,本文給大家介紹Spring Mybatis 基本使用過程,感興趣的朋友跟隨小編一起看看吧
    2024-09-09
  • JVM調(diào)試命令與調(diào)試工具詳解

    JVM調(diào)試命令與調(diào)試工具詳解

    JVM statistics Monitoring,用于監(jiān)視虛擬機(jī)運(yùn)行時(shí)狀態(tài)信息的命令,它可以顯示出虛擬機(jī)進(jìn)程中的類裝載、內(nèi)存、垃圾收集、JIT編譯等運(yùn)行數(shù)據(jù),這篇文章主要介紹了JVM調(diào)試命令與調(diào)試工具,需要的朋友可以參考下
    2023-10-10

最新評(píng)論

东港市| 开封市| 新竹市| 桃江县| 丁青县| 西宁市| 金沙县| 邵阳县| 家居| 恭城| 蒙城县| 上高县| 靖安县| 山丹县| 安福县| 扶风县| 竹北市| 望城县| 紫金县| 黎城县| 调兵山市| 霍山县| 哈尔滨市| 田林县| 郑州市| 乌拉特中旗| 淮安市| 颍上县| 晋城| 清远市| 册亨县| 贞丰县| 顺昌县| 古丈县| 绥滨县| 贵港市| 齐齐哈尔市| 邯郸市| 云南省| 三都| 图木舒克市|