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
上面的配置和省略不写,同样也看到日志信息。