转载自:https://www.cnblogs.com/jeevan/p/3493972.html

本来以为很简单的问题, 结果自己搞了半天还是不行; 然后google, baidu, 搜出来各种方法, 有加slf4j*.jar的,有说去掉slf4j*.jar,还有说要配置mybatis.cfg.xml的, 有的甚至一眼看上去就是不可能成功的. 试了这么多, 结果没有一个好用的. 可能是版本不一致的问题? 但是里面也注明是适用于什么版本的. 具体原因就不知道了.

后来参考了官方文档, 才知道, 其实只要配置mapper接口类或者配置文件中mapper的路径为debug就可以了. 具体可参考这里. 里面还说明了, 如果要打印sql语句的执行结果, 需要设置为trace级别.

log4j.rootLogger=info,stdout

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] -%m%n # 打印sql语句:debug; 执行结果:trace
## 指定mapper配置文件中的namespace log4j.logger.mapperNS =TRACE
 
<mapper namespace="mapperNS.user">
<select id="selectUser" parameterType="int" resultType="User">
<![CDATA[
select * from user where id = #{id}
]]>
</select>
</mapper>

打印结果

2013-12-27 13:16:56,335 DEBUG [mapperNS.user.selectUser] -ooo Using Connection [com.mysql.jdbc.JDBC4Connection@2d8eef25]
2013-12-27 13:16:56,344 DEBUG [mapperNS.user.selectUser] -==> Preparing: select * from user where id = ?
2013-12-27 13:16:56,408 DEBUG [mapperNS.user.selectUser] -==> Parameters: 1(String)
2013-12-27 13:16:56,430 TRACE [mapperNS.user.selectUser] -<== Columns: id, name, sex, degree, birthdaty
2013-12-27 13:16:56,436 TRACE [mapperNS.user.selectUser] -<== Row: 1, wang, 1, 1.00, 1983-08-01
2013-12-27 13:16:56,437 DEBUG [mapperNS.user.selectUser] -<== Total: 1
2013-12-27 13:16:56,439 INFO [action.UserAction] -User [id=1, name=wang, sex=1, birthday=null]

还有个问题记录一下

log4j:WARN No appenders could be found for logger (org.apache.ibatis.logging.LogFactory).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.

这种情况下没有打印出日志, 说明应用并没有对log4j进行初始化. 解决方法是要在应用启动时就进行

// 这里的路径根目录是指应用的根目录,而不是classes目录
PropertyConfigurator.configure("bin/conf/log4j.properties");

mybatis下使用log4j打印sql语句和执行结果的更多相关文章

  1. mybatis和redis整合 log4j打印sql语句

    首先,需要在项目中引进jedis-2.8.1.jar包,在pom.xml里加上 <dependency> <groupId>redis.clients</groupId& ...

  2. mybatis和ibatis控制台打印sql语句方法

    #将ibatis log4j运行级别调到DEBUG可以在控制台打印出ibatis运行的sql语句 log4j.rootLogger=debug,stdout,logfile### 把日志信息输出到控制 ...

  3. mybatis源码解读(五)——sql语句的执行流程

    还是以第一篇博客中给出的例子,根据代码实例来入手分析. static { InputStream inputStream = MybatisTest.class.getClassLoader().ge ...

  4. MyBatis框架在控制台打印Sql语句-遁地龙卷风

    第二版 (-1)写在前面 我用的是MyBatis 3.2.4,Maven Project (0)mybatis-config.xml <settings> <setting name ...

  5. *MyBatis框架 在控制台打印sql语句

    在 log4j.properties  中将这段代码添加进去就好了#log4j.rootLogger=INFO, Console#Consolelog4j.appender.Console=org.a ...

  6. EOS下控制台以及图形界面打印sql语句

    EOS下控制台以及图形界面打印sql语句 场景需求:在eos中打印sql语句,包括数据实体,查询实体和命名sql的sql语句. 所需资源: P6spy:负责拦截sql,并打印. Sqlprofiler ...

  7. mybatis结合log4j打印SQL日志

    mybatis结合log4j打印SQL日志 1.Maven引用jar包 默认的mybatis不能打印出SQL日志,不便于查看调试,须要结合log4jdbc-log4j2就能够完整的输入SQL的调试信息 ...

  8. maven项目整合SSM配置log4j, 实现控制台打印SQL语句

    在原有项目正常启动的情况下, 实现在控制台打印mapper包下SQL语句. 1.在pom.xml配置文件中添加两个依赖(缺一不可) <!--日志包--> <dependency> ...

  9. Springboot中mybatis控制台打印sql语句

    Springboot中mybatis控制台打印sql语句 https://www.jianshu.com/p/3cfe5f6e9174 https://www.jianshu.com/go-wild? ...

随机推荐

  1. markdown最基本的几种语法

    1.标题 # 相当于<h1></h1> ## 相当于<h2></h2> ### 相当于<h3></h3> #### 相当于< ...

  2. Ubuntu 17.10.1安装, 定制

    p { margin-bottom: 0.25cm; line-height: 120% } a:link { } 2018.4.7 Ubuntu 17.10.1安装, 定制, 后续搭建LAMP环境 ...

  3. python中 return 的用法

    return 语句就是讲结果返回到调用的地方,并把程序的控制权一起返回 程序运行到所遇到的第一个return即返回(退出def块),不会再运行第二个return. 要返回两个数值,写成一行即可: de ...

  4. SpringBoot入门:Spring Data JPA 和 JPA(理论)

    参考链接: Spring Data JPA - Reference Documentation Spring Data JPA--参考文档 中文版 纯洁的微笑:http://www.ityouknow ...

  5. GIT入门笔记(14)- 链接到远程仓库

    1.远程仓库地址https://github.com/ 2.注册远程仓库账号 3.生成ssh-key,并配置到github 由于你的本地Git仓库和GitHub仓库之间的传输是通过SSH加密的,所以, ...

  6. ssh整合之一spring的单独运行环境

    这是本人第一次写博客,不足之处,还希望各位园友指出,在此先谢谢各位了! 先说我们的这三大框架,即struts,spring,hibernate,我们要进行整合的话,第一步是先单独搭建我们的Spring ...

  7. spring8——AOP之Bean的自动代理生成器

    对于上篇博客http://www.cnblogs.com/cdf-opensource-007/p/6464237.html结尾处提到的两个问题,可以使用spring提供的自动代理生成器解决.自动代理 ...

  8. Vue框架axios请求(类似于ajax请求)

    Vue框架axios get请求(类似于ajax请求) 首先介绍下,这个axios请求最明显的地方,通过这个请求进行提交的时候页面不会刷新 <!DOCTYPE html> <html ...

  9. pythonllk

    字符编码 数据类型 函数  装饰器  内置函数 迭代器 生成器 异常 反射 模块 类 对象 类的进阶 socket 进程线程 httphtmlcssJavaScriptjquery MysqlMysq ...

  10. 开源博客系统使用springmvc

    https://github.com/Zephery/newblog http://www.wenzhihuai.com/index.html