mybatis下使用log4j打印sql语句和执行结果
转载自: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语句和执行结果的更多相关文章
- mybatis和redis整合 log4j打印sql语句
首先,需要在项目中引进jedis-2.8.1.jar包,在pom.xml里加上 <dependency> <groupId>redis.clients</groupId& ...
- mybatis和ibatis控制台打印sql语句方法
#将ibatis log4j运行级别调到DEBUG可以在控制台打印出ibatis运行的sql语句 log4j.rootLogger=debug,stdout,logfile### 把日志信息输出到控制 ...
- mybatis源码解读(五)——sql语句的执行流程
还是以第一篇博客中给出的例子,根据代码实例来入手分析. static { InputStream inputStream = MybatisTest.class.getClassLoader().ge ...
- MyBatis框架在控制台打印Sql语句-遁地龙卷风
第二版 (-1)写在前面 我用的是MyBatis 3.2.4,Maven Project (0)mybatis-config.xml <settings> <setting name ...
- *MyBatis框架 在控制台打印sql语句
在 log4j.properties 中将这段代码添加进去就好了#log4j.rootLogger=INFO, Console#Consolelog4j.appender.Console=org.a ...
- EOS下控制台以及图形界面打印sql语句
EOS下控制台以及图形界面打印sql语句 场景需求:在eos中打印sql语句,包括数据实体,查询实体和命名sql的sql语句. 所需资源: P6spy:负责拦截sql,并打印. Sqlprofiler ...
- mybatis结合log4j打印SQL日志
mybatis结合log4j打印SQL日志 1.Maven引用jar包 默认的mybatis不能打印出SQL日志,不便于查看调试,须要结合log4jdbc-log4j2就能够完整的输入SQL的调试信息 ...
- maven项目整合SSM配置log4j, 实现控制台打印SQL语句
在原有项目正常启动的情况下, 实现在控制台打印mapper包下SQL语句. 1.在pom.xml配置文件中添加两个依赖(缺一不可) <!--日志包--> <dependency> ...
- Springboot中mybatis控制台打印sql语句
Springboot中mybatis控制台打印sql语句 https://www.jianshu.com/p/3cfe5f6e9174 https://www.jianshu.com/go-wild? ...
随机推荐
- 我自己总结的C#开发命名规范整理了一份
我自己总结的C#开发命名规范整理了一份 标签: 开发规范文档标准语言 2014-06-27 22:58 3165人阅读 评论(1) 收藏 举报 分类: C#(39) 版权声明:本文为博主原创文章, ...
- 将Python程序打包为exe方法
将Python程序打包为exe文件,需要使用到的工具是pyinstaller pyinstaller是一个多平台的Python程序打包为exe的免费工具 安装pyinstaller: 1,在Windo ...
- B树和B+树的插入、删除图文详解
简介:本文主要介绍了B树和B+树的插入.删除操作.写这篇博客的目的是发现没有相关博客以举例的方式详细介绍B+树的相关操作,由于自身对某些细节也感到很迷惑,通过查阅相关资料,对B+树的操作有所顿悟,写下 ...
- Mego(06) - 关系数据库建模
框架中提供了多种数据注释以便可以全面的描述数据库结构特性. 自增列 可以使用注释声明指定列是数据库自增列,同时能指定自增的起始及步长. public class Blog { [Identity(, ...
- 到底什么是 "method group"
class Program { delegate void NoParam(); delegate void WithOneParam(string name); static void Main(s ...
- angular2 学习笔记 ( 4.0 初探 )
目前是 4.0.0-rc.2. 刚好有个小项目要开发,就直接拿它来试水啦. 更新 cli 到最新版, 创建项目, 然后 follow https://github.com/angular/angula ...
- android 加速度传感器 ---摇一摇
package com.eboy.testyaoyiyao;import java.text.SimpleDateFormat;import java.util.Date;import android ...
- Lintcode373 Partition Array by Odd and Even solution 题解
[题目描述] Partition an integers array into odd number first and even number second. 分割一个整数数组,使得奇数在前偶数在后 ...
- POJ1236【Tarjan+缩点】
题目大意:有向关系体现在电脑可以通过网络单向的传输文件,并规定一旦有电脑存在该文件,那么所有它能传输的电脑就能在第一时间得到这个文件,题目有两个问题,第一个是最少向网络中的几台电脑投放文件,能使得整个 ...
- python Django之Ajax
python Django之Ajax AJAX,Asynchronous JavaScript and XML (异步的JavaScript和XML),一种创建交互式网页应用的网页开发技术方案. 异步 ...