天天看點

mybatis日志列印sql語句

        mybatis列印出sql語句可以很友善我們調試程式。現在介紹兩種常用的簡單的配置方案,第一種方案是配置log4j日志架構,第二種方案是采用slf4j日志架構。這兩種方案存在着聯系,第二種方案要依賴第一種方案即slf4j要通過log4j來輸出日志資訊列印sql語句。

        安裝log4j,要将log4j.jar添加到build path

        配置log4j日志屬性檔案,這裡采用了log4j1.x方式配置lo4j.properties檔案

#将Mybatis log4j運作級别調到DEBUG可以在控制台列印出Mybatis運作的sql語句
log4j.rootLogger=DEBUG,Console
### 把日志資訊輸出到控制台 ###
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.Target=System.out
log4j.appender.Console.layout = org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=%d{yyyy-MM-dd-HH\:mm\:ss,SSS} [%t]  [%c] [%p] - %m%n 

#要和mybatis的Mapper.xml檔案namespace保持一緻
log4j.logger.org.lian.domain.Group=TRACE
log4j.logger.org.lian.domain.Music=TRACE
           

        配置mybatis-config.xml主配置檔案,配置日志的log4j的實作

<settings>
      <!-- 配置開啟日志 Log4j -->
     <setting name="logImpl" value="LOG4J"/>
</settings>      

       配置Mapper.xml映射檔案,以GroupMapper.xml檔案為例 namespace要和log4j中保持一緻

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
  PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  
<mapper namespace="org.lian.domain.Group">
	
	<resultMap id="groupResult" type="Group">
		<id property="groupId" column="group_id"/>
		<result property="groupName" column="group_name"/>
	</resultMap>
	
	<!-- <select id="selectGroup" parameterType="String" resultType="Group">
		select group_id ,group_name from t_group  where group_id = #{group_id}
	</select> -->
	
	<select id="selectGroup" parameterType="String" resultMap="groupResult">
		select group_id ,group_name from t_group  where group_id = #{group_id}
	</select>
</mapper>      

        除了上面的方案還有一種方案,我們修改一下mybatis-config.xml主配置

<settings>
      <setting name="logImpl" value="SLF4J"/>
</settings>      

         上面的其他配置都不用修改,隻需要安裝slf4j日志元件,将slf4j.api.jar 和 slf4j-log4j12.jar添加包build path,同時要保留log4j.jar。

           log4j.properties配置檔案中具體的mapper.xml配置也可以不用配置,這樣預設列印SQL是DEBUG級别,而且沒有詳盡的傳回結果,如果要檢視詳盡的資訊就要配置成 TRACE 

log4j.logger.org.lian.domain.Group=DEBUG  
log4j.logger.org.lian.domain.Music=DEBUG
           

 上面的配置和省略不寫,同樣也看到日志資訊。

繼續閱讀