在开发过程中, 经常会遇到想要看到应用所执行的 sql 这样的需求.
比如你写了一个查询的功能, 但查询出来的结果与你预期的不符合, 你想搞清楚到底哪里出了问题, 你自然需要看看所执行的 sql 语句, 必要的话甚至还要亲自拷贝到数据库里去查查.
自然, 这就要求应用要能把执行的 sql 输出出来. 以常用的 mybatis 框架为例, 来看一个最终的效果:
14:48 ==> Preparing: select * from user where id = ?
14:48 ==> Parameters: 1(Integer)
14:48 <== Total: 1
另注: 这里的日志布局我启用了一种极简的风格, 只有"分钟:秒数", 具体见 配置简化开发阶段日志输出布局 的介绍.
那么, 在 mybatis 里, 这个要怎么做到呢?