【环境参数】

JDK:jdk1.8.0_25

IDE:Eclipse Luna Servie Release 1

框架:Spring 4.1.5 + SpringMVC 4.1.5 + MyBatis 3.2.2

【配置步骤】

一、设置MyBatis的Setting(非必须,不同环境下,可能不需要该设置)。

在“src/main/java/resources”目录下,创建mybatis-config.xml文件,并且输入下列内容。

 <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<settings>
<setting name="lazyLoadingEnabled" value="false" />
<setting name="logImpl" value="LOG4J" />
</settings>
</configuration>

二、配置log4j的配置文件。

不同的项目中,log4j的配置文件的格式可能不同,在一些项目中,log4j的配置文件是XML格式的,比如log4j.xml;在另一些项目中,log4j的配置文件是properties格式的,比如log4j.properties。

备注:properties格式文件的配置一般只在老的项目中存在,新的互联网类项目,一般都是XML格式。

1、对于properties格式文件的配置。

 ###############Log4j 4 SQL Output start#################
log4j.logger.com.xxx.mydao=DEBUG
log4j.logger.com.springframework=DEBUG
log4j.logger.com.ibatis=DEBUG
log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=DEBUG
log4j.logger.com.ibatis.common.jdbc.ScriptRunner=DEBUG
log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=DEBUG
log4j.logger.java.sql.Connection=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG
log4j.logger.java.sql.ResultSet=DEBUG
log4j.logger.org.apache.ibatis.logging.commons.JakartaCommonsLoggingImpl=DEBUG
log4j.logger.java.sql=DEBUG,CONSOLE
###############Log4j 4 SQL Output end###################

2、对于xml格式文件的配置。

 <loggers>
<!-- name可以指定包名或具体的类;additivity如果指定true,则root logger也会生效,相同日志会输出两次;false,则只有当前日志文件输出 -->
<!-- 借据插入接口日志 -->
<logger level="info" name="insertCreditBill" additivity="false">
<appender-ref ref="insertCreditBillLog" />
</logger> <!-- 下面是打印通过log4j2打印出mybatis语句的配置-->
<logger name="com.xxx.mydao">
<level>DEBUG</level>
</logger>
<logger name="com.springframework">
<level>DEBUG</level>
</logger>
<logger name="com.ibatis" additivity="true">
<level>DEBUG</level>
</logger>
<logger name="com.ibatis.common.jdbc.SimpleDataSource" additivity="true">
<level>DEBUG</level>
</logger>
<logger name="com.ibatis.common.jdbc.ScriptRunner" additivity="true">
<level>DEBUG</level>
</logger>
<logger name="com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate" additivity="true">
<level>DEBUG</level>
</logger>
<logger name="Java.sql.Connection" additivity="true">
<level>DEBUG</level>
</logger>
<logger name="java.sql.Statement" additivity="true">
<level>DEBUG</level>
</logger>
<logger name="java.sql.PreparedStatement" additivity="true">
<level>DEBUG</level>
</logger>
<logger name="java.sql.ResultSet" additivity="true">
<level>DEBUG</level>
</logger>
<logger name="org.apache.ibatis.logging.commons.JakartaCommonsLoggingImpl" additivity="true">
<level>DEBUG</level>
</logger> <!-- root logger,任何其它的logger最终都相当于继承自 root logger -->
<root level="INFO">
<appenderRef ref="Console" />
<appenderRef ref="FileLog"></appenderRef>
</root>
</loggers>

说明:

上述配置中,“com.xxx.mydao”为自己项目中MyBatis的所有的mapper和xml文件所在的包名字。

至此,log4j的打印SQL语句的配置完成。

3、XML格式配置的精简版本

 <loggers>
<!-- 下面是打印通过log4j2打印出mybatis语句的配置-->
<logger name="com.xxx.mydao">
<level>DEBUG</level>
</logger> <!-- root logger,任何其它的logger最终都相当于继承自 root logger -->
<root level="INFO">
<appenderRef ref="Console" />
<appenderRef ref="FileLog"></appenderRef>
</root>
</loggers>

说明:
  在开发中,需要配置让哪个包下的程序打印出SQL,则仅仅只用配置那一个包名就成。

  上述配置中,“com.xxx.mydao”为自己项目中MyBatis的mapper和xml文件所在的包名字,因此,精简版中,仅仅配置了这个包的内容

【拓展】

“细粒度”控制:Log4j打印出MyBatis中仅仅单个Mapper的配置。

<!-- 下面是通过配置log4j2,仅仅打印出单个mapper的SQL语句的配置-->
<logger name="com.beebank.dao.iface.UserMapper">
<level>DEBUG</level>
</logger>

【原】配置Log4j,使得MyBatis打印出SQL语句的更多相关文章

  1. 控制台输出 mybatis 中的sql语句

    控制台输出 mybatis 中的sql语句 在 log4j.xml 文件中 增加如下配置 <!-- mybatis 输出的sql,DEBUG级别 --> <logger name=& ...

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

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

  3. 详解Java的MyBatis框架中SQL语句映射部分的编写

    这篇文章主要介绍了Java的MyBatis框架中SQL语句映射部分的编写,文中分为resultMap和增删查改实现两个部分来讲解,需要的朋友可以参考下 1.resultMap SQL 映射XML 文件 ...

  4. mybatis中打印sql语句

    在mybatis-config.xml中properties节点下,配置一个settings节点 <settings> <setting name="cacheEnable ...

  5. mybatis 的动态sql语句是基于OGNL表达式的。

    mybatis 的动态sql语句是基于OGNL表达式的.可以方便的在 sql 语句中实现某些逻辑. 总体说来mybatis 动态SQL 语句主要有以下几类:1. if 语句 (简单的条件判断)2. c ...

  6. MyBatis中动态SQL语句完成多条件查询

    一看这标题,我都感觉到是mybatis在动态SQL语句中的多条件查询是多么的强大,不仅让我们用SQL语句完成了对数据库的操作:还通过一些条件选择语句让我们SQL的多条件.动态查询更加容易.简洁.直观. ...

  7. mybatis mapper文件sql语句传入hashmap参数

    1.怎样在mybatis mapper文件sql语句传入hashmap参数? 答:直接这样写map就可以 <select id="selectTeacher" paramet ...

  8. Mybatis中动态SQL语句中的parameterType不同数据类型的用法

    Mybatis中动态SQL语句中的parameterType不同数据类型的用法1. 简单数据类型,    此时#{id,jdbcType=INTEGER}中id可以取任意名字如#{a,jdbcType ...

  9. mybatis日志,打印sql语句,输出sql

    mybatis日志,打印sql语句,输出sql<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE ...

随机推荐

  1. netif_receive_skb->__netif_receive_skb_core

    在设备驱动收包之后,会通过netif_receive_skb将收取的包,按照注册的协议回调,传递到上层进行处理: /* 将skb传递到上层 */ static int __netif_receive_ ...

  2. Python下urllib2应用

    #coding=utf-8 import urllib,urllib2 url = 'http://www.xxx.com' values = {'wd' : 'python', 'language' ...

  3. [转载]锁无关的(Lock-Free)数据结构

    锁无关的(Lock-Free)数据结构 在避免死锁的同时确保线程继续 Andrei Alexandrescu 刘未鹏 译 Andrei Alexandrescu是华盛顿大学计算机科学系的在读研究生,也 ...

  4. Python——文件打开模式辨析

    版权声明:本文系原创,转载请注明出处及链接. Python中,open()函数打开文件时打开模式如r.r+ .w+.w.a.a+有何不同 r 只能读 r+ 可读可写,不会创建不存在的文件.如果直接写文 ...

  5. mybatis注解使用

    spring整合mybatis时,要使用mybatis的注解,需要spring-config.xml文件中添加下述配置: <!--下述配置指明了我们的Mapper,即Dao,在相应的包里也就可以 ...

  6. SSD回归类物体检测

    本宝宝最近心情不会,反正这篇也是搬用别人博客的了:(SSD就是YOLO+anchor(不同feature map 作为input)) 引言 这篇文章是在YOLO[1]之后的一篇文章,这篇文章目前是一篇 ...

  7. (转)OpenCV 访问Mat中每个像素的值

    转自:http://blog.csdn.net/xiaowei_cqu/article/details/19839019 在<OpenCV 2 Computer Vision Applicati ...

  8. C++如何取得int型的最大最小值

    转:http://www.cnblogs.com/alex4814/archive/2011/09/12/2174173.html 當題目涉及到求最大最小值時,最初的比較數字就應當設置爲INT_MAX ...

  9. **CodeIgniter系列 添加filter和helper

    filter: 使用CI的hooks来实现filter. 1.在system/application/config/config.php中,把enable_hooks的值改为TRUE $config[ ...

  10. 字典dict常用方法

    字典是列表中常用的方法,我们经常处理字典,字典嵌套,很多复杂的操作都来自于基础,只是改变了样式而已,本质是不变的.下面来看看字典中常用的功能都有那些:     1.clear(self) def cl ...