zoukankan      html  css  js  c++  java
  • 【转】 mybatis如何在控制台打印执行的sql语句

    http://843977358.iteye.com/blog/2259796
    Java代码  收藏代码
    1. <strong>#########################################################################  
    2. #Root Logger  
    3. #log4j.rootLogger = [ level ] , appenderName, appenderName,  
    4. #ConversionPattern:%d{yyyy-MM-dd-HH:mm:ss,SSS} [%t]  [%c] [%p] - %m%n    
    5. #FilePath =  /opt/uploads/maven_logs/maven_web.log  
    6. #########################################################################  
    7. #将Mybatis log4j运行级别调到DEBUG可以在控制台打印出Mybatis运行的sql语句  
    8. log4j.rootLogger=DEBUG,Console,File  
    9. ### 把日志信息输出到控制台 ###  
    10. log4j.appender.Console=org.apache.log4j.ConsoleAppender  
    11. log4j.appender.Console.Target=System.out  
    12. log4j.appender.Console.layout = org.apache.log4j.PatternLayout  
    13. log4j.appender.Console.layout.ConversionPattern=%d{yyyy-MM-dd-HH:mm:ss,SSS} [%t]  [%c] [%p] - %m%n   
    14. ### 把日志信息输出到文件:/opt/uploads/maven_logs/maven_web.log ###  
    15. log4j.appender.File = org.apache.log4j.DailyRollingFileAppender  
    16. log4j.appender.File.File = /opt/uploads/maven_logs/maven_web.log  
    17. log4j.appender.File.Threshold = DEBUG  
    18. log4j.appender.File.layout = org.apache.log4j.PatternLayout  
    19. log4j.appender.File.layout.ConversionPattern =%d{yyyy-MM-dd-HH:mm:ss,SSS} [%t]  [%c] [%p] - %m%n   
    20.   
    21. ###显示SQL语句部分  
    22. log4j.logger.com.mybatis=DEBUG  
    23. log4j.logger.com.mybatis.common.jdbc.SimpleDataSource=DEBUG  
    24. log4j.logger.com.mybatis.common.jdbc.ScriptRunner=DEBUG  
    25. log4j.logger.com.mybatis.sqlmap.engine.impl.SqlMapClientDelegate=DEBUG  
    26. log4j.logger.java.sql.Connection=DEBUG  
    27. log4j.logger.java.sql.Statement=DEBUG  
    28. log4j.logger.java.sql.PreparedStatement=DEBUG</strong>  

     各位看官,我这番配置是没问题吧?

    但是在控制台SQL死活不出来。上网search...

    很多很多,看的我眼花缭乱,像什么配置不通(此处槽点,我只是SQL语句打印不出来,其他一切正常,因此忽略)、需要slf4j-api-1.6.1.jar和slf4j-log4j12.-1.6.1.jar (maven库中有,忽略!),然后就是在网上找别人的配置,但是并没有什么卵用!

    我急啊!

    直接去mybatis文档查,兴许会有关于log的......

    功夫不负有心人,果然有!摘抄一段:

    Html代码  收藏代码
    1. Logging  
    2. Mybatis内置的日志工厂提供日志功能,具体的日志实现有以下几种工具:  
    3.   
    4. SLF4J  
    5. Apache Commons Logging  
    6. Log4j 2  
    7. Log4j  
    8. JDK logging  
    9. <span style="color: #ff0000;">具体选择哪个日志实现工具由MyBatis的内置日志工厂确定</span>。它会使用最先找到的(按上文列举的顺序查找)。 如果一个都未找到,日志功能就会被禁用。  
    10.   
    11. 不少应用服务器的classpath中已经包含Commons Logging,如Tomcat和WebShpere, 所以MyBatis会把它作为具体的日志实现。记住这点非常重要。这将意味着,在诸如 WebSphere的环境中——WebSphere提供了Commons Logging的私有实现,你的Log4J配置将被忽略。 这种做法不免让人悲催,MyBatis怎么能忽略你的配置呢?事实上,因Commons Logging已经存 在了,按照优先级顺序,Log4J自然就被忽略了!  

     我去!mybatis还会这么玩啊!搞死我了。但是文档中并有直接说明如何通过修改配置文件实现,但是这个文档提供了对log4j的详细配置,值得看一下。文档中说了一大堆代码实现的,不喜欢这种。既然给了思路了是mybatis搞的鬼, 那就继续上网找资料...

     终于,碰到了好心人,解了我的惑!

    好心人链接中有,我这儿在赘述一遍:

    在mybatis-config.xml配置文件中:

    Java代码  收藏代码
    1. <?xml version="1.0" encoding="UTF-8" ?>    
    2. <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"  
    3. "http://mybatis.org/dtd/mybatis-3-config.dtd">  
    4.   
    5. <configuration>  
    6.     <properties>  
    7.         <property name="dialect" value="mysql" />  
    8.     </properties>  
    9.     <settings>  
    10.         <setting name="logImpl" value="LOG4J" />    
    11.     </settings>  
    12. </configuration>    

     重要的是:

    Java代码  收藏代码
    1. <setting name="logImpl" value="LOG4J" />  

    在mybatis的配置文件中:setting节点里配置的值会直接改写Configuration对应的变量值,这些变量描述的是Mybatis的全局运行方式,如果对这些属性的含义不熟悉的话建议不要配置,使用默认值即可。

    具体的各位看官,自行查找资料,此处不做过多赘述...

    OK!

    技能get吐舌头!

    解决了!!。。。世界和平了, 阿门。。。先写到这...头昏脑涨的

  • 相关阅读:
    python第四章:列表
    python第三章:函数
    python第二章:控制流
    python第一章:基础
    Spring Boot 集成 Mybatis(druid 数据库连接池 以及 分页配置)
    Spring Boot与Logback的运用(自定义异常+AOP)
    Spring Boot 简单的请求示例(包括请求体验证)
    Spring Boot之初始化项目
    深入理解javascript系列,读书笔记
    事件冒泡机制和事件委派 以及回调的匿名函数参数
  • 原文地址:https://www.cnblogs.com/yangjian-java/p/6442115.html
Copyright © 2011-2022 走看看