在MyBatis中,要让控制台输出执行的SQL语句,通常有两种配置方法:
方法一:通过MyBatis配置文件(mybatis-config.xml)
在MyBatis的核心配置文件中设置logImpl属性为STDOUT_LOGGING,这样会将SQL语句直接输出到标准输出(即控制台)。
<configuration>
<settings>
<setting name="logImpl" value="org.apache.ibatis.logging.stdout.StdOutImpl"/>
</settings>
<!-- 其他配置项... -->
</configuration>
方法二:结合日志框架(如Log4j2或Logback)
如果你的应用使用了日志框架,比如Log4j2,则需要调整日志级别来输出MyBatis相关的DEBUG级别的信息。对于Log4j2,可以按如下方式配置:
Log4j2配置示例(log4j2.xml或log4j2.properties)
<!-- log4j2.xml -->
<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>
<!-- 设置MyBatis的包名为DEBUG级别 -->
<Logger name="com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate" level="DEBUG"/>
<!-- 或者全局设置DEBUG级别,并确保没有更高的根logger级别 -->
<Root level="DEBUG">
<AppenderRef ref="Console"/>
</Root>
</Loggers>
</Configuration>
在Spring Boot集成MyBatis时,如果你使用的是MyBatis-Plus,也可以在application.yml或application.properties文件中配置相关日志级别:
# application.yml
logging:
level:
com.baomidou.mybatisplus.core.mapper: DEBUG
# application.properties
logging.level.com.baomidou.mybatisplus.core.mapper=DEBUG