MyBatis-Plus 提供了方便的配置方式来打印 SQL 查询语句,以便进行调试和性能分析。可以通过配置 log 来输出 SQL 语句以及执行的参数。
方法 1:通过 application.properties 或 application.yml 配置打印 SQL
可以通过配置 application.properties 或 application.yml 文件来启用 MyBatis-Plus 的 SQL 打印功能。
1.1 在 application.properties 中配置
# 开启 MyBatis-Plus SQL 打印日志
mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
这个配置会使用 StdOutImpl 打印 SQL 到控制台。
1.2 在 application.yml 中配置
mybatis-plus:configuration:log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
方法 2:自定义 SQL 日志输出方式
MyBatis-Plus 使用了 MyBatis 的日志框架,因此可以通过配置 MyBatis 的日志实现方式来控制日志的输出。MyBatis 提供了多种日志实现,可以通过配置来选择输出方式。
常见的日志实现包括:
SLF4J(推荐)
CommonsLogging
Log4j
Log4j2
JDKLogging(Java 默认日志)
如果使用的是 SLF4J,则可以通过配置 logback.xml 来控制 SQL 的输出。
方法 3:通过代码配置 MyBatis-Plus
如果希望在代码中配置 SQL 打印,而不是依赖于配置文件,可以通过在 MyBatis 配置中显式设置日志工厂。
3.1 配置 SqlSessionFactory 和 Logging 组件
在 Java 配置中,可以为 MyBatis 配置日志实现类:
@Bean
public SqlSessionFactory sqlSessionFactory(DataSource dataSource) throws Exception {MybatisSqlSessionFactoryBean sessionFactory = new MybatisSqlSessionFactoryBean();sessionFactory.setDataSource(dataSource);// 设置 MyBatis-Plus 的日志实现类org.apache.ibatis.logging.LogFactory.useSlf4jLogging();return sessionFactory.getObject();
}
方法 4:结合日志框架(推荐使用 SLF4J + Logback)
结合 SLF4J 和 Logback 来打印 SQL 日志,这样能够提供更强的日志管理能力。以下是一个例子:
4.1 配置 logback.xml
首先,需要在 logback.xml 配置文件中设置日志级别为 DEBUG,并定义日志输出格式:
<configuration><!-- 设置日志级别 --><logger name="com.baomidou.mybatisplus" level="DEBUG" /><logger name="org.mybatis" level="DEBUG" /><appender name="stdout" class="ch.qos.logback.core.ConsoleAppender"><encoder><pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern></encoder></appender><root level="INFO"><appender-ref ref="stdout" /></root></configuration>
``
[Something went wrong, please try again later.]