如何将在 mybatis mapper xml 中执行的 sql 查询打印到控制台

How to print the sql query executing in mybatis mapper xml to the console

假设我正在执行下面的查询,它在我的映射器中 xml:

<select id="getData" parameterType="java.util.HashMap" resultType="java.util.LinkedHashMap">

select * from emp where empId=#{empId}          
    </select>

在上面xml empId 是returns Mybatis 中作为参数在上面的映射器xml 中传递的HashMap 的键值的动态值。

当映射到方法 getData 的上述 select 查询为 运行.

时,是否有任何方法可以将带有传递参数的 sql 打印到控制台

例如我传递数据 empId =1 我想在控制台中:select * from emp where empId=1

在您的项目中查找 "logback.xml"...\resources\

将 mybatis 日志级别更改为 INFO

添加log4j.properties

log4j.logger.yourmapperpackage=DEBUG

并且 sql 调试是这样的:

2016-01-09 20:51:10,621 DEBUG [com.xxxMapper.insert] - <==>  Preparing: INSERT INTO video_info (content, id, create_time, title, media_url, zhan_count, cover_url) VALUES (?, ?, ?, ?, ?, ?, ?) >
2016-01-09 20:51:10,627 DEBUG [com.xxxMapper.insert] - <==> Parameters: vcontent(String), 0(Long), 2016-01-09 20:51:10.616(Timestamp), vtitle(String), null, 1(Integer), null>
2016-01-09 20:51:10,628 DEBUG [com.xxxMapper.insert] - <<==    Updates: 1>