springboot集成mybatis在日志中打印完整的sql语句(sql中不带有问号的那种)

在Spring Boot项目中集成MyBatis并且需要打印完整的SQL语句(即带有实际参数而非问号占位符的SQL),需要进行以下配置和操作:

1. 添加MyBatis依赖

确保在pom.xml文件中添加MyBatis和MyBatis-Spring的依赖:

xml
<!-- MyBatis --> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.2.0</version> <!-- 请根据实际版本选择 --> </dependency>

2. 配置application.properties或application.yml

在Spring Boot的配置文件中,添加以下配置来开启MyBatis的SQL语句打印:

使用application.properties的配置示例:

properties
# 开启MyBatis SQL语句打印 mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl

使用application.yml的配置示例:

yaml
# 开启MyBatis SQL语句打印 mybatis: configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

3. 添加Logback配置(可选)

如果需要更精细的日志控制,可以配置Logback或其他日志框架,例如打印SQL执行时间等。

src/main/resources目录下创建logback-spring.xml(或者logback.xml),并添加以下内容:

xml
<?xml version="1.0" encoding="UTF-8"?> <configuration> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern> </encoder> </appender> <logger name="org.mybatis" level="DEBUG"/> <root level="INFO"> <appender-ref ref="STDOUT"/> </root> </configuration>

这个配置会打印MyBatis的DEBUG级别日志到控制台,包括完整的SQL语句和参数。

4. 打印SQL语句

在应用程序运行时,MyBatis将会将SQL语句和参数打印到控制台(如果使用了StdOutImpl)或者根据Logback的配置输出到日志文件中。

注意事项:

  • 确保在开发环境中开启详细的SQL日志,但在生产环境中应关闭或者只保留必要的日志级别。
  • 可以根据需要调整Logback配置文件中的日志级别和输出格式,以满足具体的调试和监控需求。

通过以上配置,你可以在Spring Boot项目中集成MyBatis,并且在日志中打印完整的SQL语句,帮助你进行调试和性能优化。