기술나눔

MyBatis (27) 실행 가능한 SQL 문을 인쇄하도록 MyBatis를 구성하는 방법

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

개발 프로세스 중에 실행 가능한 SQL 문을 인쇄하는 것은 디버깅 및 성능 최적화에 매우 유용합니다. MyBatis는 SQL 문을 인쇄하는 여러 가지 방법을 제공합니다.

1. 로깅 프레임워크 사용

MyBatis는 내부 로깅 프레임워크(예: Log4j, Logback 등)를 구성하여 SQL 문을 인쇄할 수 있습니다. 이것이 가장 일반적인 방법입니다.

로그백 구성 예

Logback을 사용하는 경우 다음을 수행할 수 있습니다.logback.xml파일에 다음 구성을 추가합니다.

<configuration>
    <!-- 其他配置 -->

    <!-- 配置MyBatis日志级别 -->
    <logger name="org.apache.ibatis" level="DEBUG"/>
    
    <!-- 如果你想要更详细的输出,包括SQL语句、参数等 -->
    <logger name="java.sql.PreparedStatement" level="TRACE"/>
</configuration>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

이 구성 후에 MyBatis가 실행한 SQL 문과 해당 매개변수가 로그에 인쇄됩니다.

Log4j 구성 예

Log4j를 사용하는 경우 다음을 수행할 수 있습니다.log4j.properties파일에 다음 구성을 추가합니다.

# 配置MyBatis日志级别
log4j.logger.org.apache.ibatis=DEBUG

# 如果你想要更详细的输出,包括SQL语句、参数等
log4j.logger.java.sql.PreparedStatement=TRACE
  • 1
  • 2
  • 3
  • 4
  • 5

2. MyBatis에서 제공하는 로그 구현을 사용하세요.

MyBatis 자체는 MyBatis 구성 파일에서 구성할 수 있는 간단한 로그 구현도 제공합니다.mybatis-config.xml활성화할 설정:

<configuration>
    <settings>
        <!-- 启用日志 -->
        <setting name="logImpl" value="STDOUT_LOGGING"/>
    </settings>
</configuration>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

그러면 표준 출력에 기록됩니다.logImpl값은 다음과 같습니다.STDOUT_LOGGINGLOG4JLOG4J2SLF4J등, 프로젝트에 사용되는 로깅 프레임워크에 따라 선택하세요.

3. P6Spy를 사용하세요

P6Spy는 JDBC 드라이버를 프록시하여 SQL 문을 가로채고 기록할 수 있는 데이터베이스 쿼리 분석 도구입니다. P6Spy를 사용하면 코드 수정 없이 JDBC를 통해 실행되는 모든 SQL 문을 기록할 수 있습니다.

P6Spy를 사용하려면 다음이 필요합니다.

  1. 프로젝트에 P6Spy 종속성을 추가합니다.
  2. 구성spy.properties파일, 실제 JDBC 드라이버 및 로그 파일 경로 등을 지정합니다.
  3. 데이터베이스 연결 구성을 수정하고 P6Spy의 프록시 드라이버를 사용하십시오.
P6Spy 종속성 추가

Maven을 예로 들어보겠습니다.

<dependency>
    <groupId>p6spy</groupId>
    <artifactId>p6spy</artifactId>
    <version>最新版本</version>
</dependency>
  • 1
  • 2
  • 3
  • 4
  • 5
구성spy.properties

존재하다src/main/resources디렉토리 아래에 생성spy.properties파일을 작성하고 다음과 같이 구성하십시오.

driverlist=真实的数据库驱动类名
logfile=日志文件路径
  • 1
  • 2
데이터베이스 연결 구성 수정

데이터베이스 연결의 드라이버 클래스를 다음으로 변경합니다.com.p6spy.engine.spy.P6SpyDriver, URL 접두어가 다음으로 변경됩니다.jdbc:p6spy:

요약하다

위의 내용은 MyBatis 인쇄 실행 가능 SQL 문을 구현하는 여러 가지 방법입니다. 실제 개발에서는 프로젝트의 특정 요구 사항과 사용된 기술 스택을 기반으로 적절한 방법을 선택할 수 있습니다. 일반적으로 로깅 프레임워크를 구성하는 것이 가장 간단하고 일반적인 방법입니다.