SoFunction
Updated on 2025-03-08

A detailed explanation of how to configure MyBatis to print executable SQL statements

During development, printing executable SQL statements is very helpful for debugging and performance optimization. MyBatis provides several ways to implement the printing of SQL statements.

1. Use the logging framework

MyBatis can print SQL statements by configuring the log frameworks used internally (such as Log4j, Logback, etc.). This is the most commonly used method.

Logback configuration example

If you are using Logback, you canAdd the following configuration to the file:

<configuration>
    <!-- Other configurations -->

    <!-- ConfigurationMyBatisLog Level -->
    <logger name="" level="DEBUG"/>
    
    <!-- If you want more detailed output,includeSQLStatement、Parameters, etc. -->
    <logger name="" level="TRACE"/>
</configuration>

After this configuration, the SQL statements and parameters executed by MyBatis will be printed to the log.

Log4j configuration example

If you are using Log4j, you canAdd the following configuration to the file:

# Configure MyBatis log level=DEBUG

# If you want more detailed output, including SQL statements, parameters, etc.=TRACE

2. Use the log implementation provided by MyBatis

MyBatis itself also provides a simple log implementation, which can be accessed through the MyBatis configuration file.Settings to enable:

<configuration>
    <settings>
        <!-- Enable logging -->
        <setting name="logImpl" value="STDOUT_LOGGING"/>
    </settings>
</configuration>

This will output the log to standard output.logImplThe value ofSTDOUT_LOGGINGLOG4JLOG4J2SLF4Jetc. Choose according to the log framework used in your project.

3. Use P6Spy

P6Spy is a database query analysis tool that can proxy JDBC drivers, thereby implementing the interception and recording of SQL statements. With P6Spy, you can record all SQL statements executed through JDBC without modifying any code.

To use P6Spy, you need:

  • Add P6Spy dependencies to your project.
  • ConfigurationFile, specify the actual JDBC driver and log file path, etc.
  • Modify the database connection configuration and use P6Spy's proxy driver.

Add P6Spy dependencies

Take Maven as an example:

<dependency>
    <groupId>p6spy</groupId>
    <artifactId>p6spy</artifactId>
    <version>Latest version</version>
</dependency>

Configuration

existsrc/main/resourcesCreated in the directoryFile and configured as follows:

driverlist=Real database driver class name
logfile=Log file path

Modify database connection configuration

Change the driver class for the database connection tocom..P6SpyDriver, change the URL prefix tojdbc:p6spy:

Summarize

The above are several methods to implement MyBatis printing executable SQL statements. In actual development, the appropriate method can be selected based on the specific needs of the project and the technology stack used. Generally speaking, configuring a log framework is the easiest and most commonly used method.

This is the article about how to configure MyBatis to print executable SQL statements. For more related contents of MyBatis to print executable SQL statements, please search for my previous articles or continue browsing the related articles below. I hope everyone will support me in the future!