【轉】 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吐舌頭!

 

解決了!!。。。世界和平了, 阿門。。。先寫到這...頭昏腦漲的

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM