今天mybatis中有个sql一直不知道有没有写对,所以需要打印mybatis中的sql来查看sql语句是否正确。
在网上找了好多的资料,试过之后都是不能正常使用。试了好久终于能显示了,记录一下,以后方便回顾。
1、在mybatis-conf.xml中的<configuration>、<settings>增加配置:
<setting name="logImpl" value="STDOUT_LOGGING"/>
2、在logback.xml中配置:
<?xml version="1.0" encoding="UTF-8"?>
<!-- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "https://www.w3.org/2002/xmlspec/dtd/2.10/xmlspec.dtd"> -->
<configuration>
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<appender name="rollingFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>d:/logs/carmall-manager.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>d:/logs/carmall-manager.%d{yyyy-MM-dd}.log</fileNamePattern>
</rollingPolicy>
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<!-- mapper 文件的包路径-->
<logger name="mapper" level="debug" />
<!--log4jdbc -->
<logger name="jdbc.sqltiming" level="debug"/>
<logger name="com.ibatis" level="debug" />
<logger name="com.ibatis.common.jdbc.SimpleDataSource" level="debug" />
<logger name="com.ibatis.common.jdbc.ScriptRunner" level="debug" />
<logger name="com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate"
level="debug" />
<logger name="java.sql.Connection" level="debug" />
<logger name="java.sql.Statement" level="debug" />
<logger name="java.sql.PreparedStatement" level="debug" />
<logger name="java.sql.ResultSet" level="debug" />
<logger name="com.guoyu.project.dao.*" level="DEBUG" />
<root level="info">
<appender-ref ref="console" />
<appender-ref ref="cn.iautos.manager" />
<appender-ref ref="com.ibatis" />
<appender-ref ref="rollingFile" />
</root>
</configuration>
其中<logger name="com.guoyu.project.dao.*" level="DEBUG" />是关键,其中的name是dao层的包名,后面的.*是关键,之前没有加这个怎么都打印不出来,加上这个之后访问接口,console打印出相应的sql。