【原】配置Log4j,使得MyBatis打印出SQL语句
【环境参数】
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语句的更多相关文章
- 控制台输出 mybatis 中的sql语句
控制台输出 mybatis 中的sql语句 在 log4j.xml 文件中 增加如下配置 <!-- mybatis 输出的sql,DEBUG级别 --> <logger name=& ...
- Springboot中mybatis控制台打印sql语句
Springboot中mybatis控制台打印sql语句 https://www.jianshu.com/p/3cfe5f6e9174 https://www.jianshu.com/go-wild? ...
- 详解Java的MyBatis框架中SQL语句映射部分的编写
这篇文章主要介绍了Java的MyBatis框架中SQL语句映射部分的编写,文中分为resultMap和增删查改实现两个部分来讲解,需要的朋友可以参考下 1.resultMap SQL 映射XML 文件 ...
- mybatis中打印sql语句
在mybatis-config.xml中properties节点下,配置一个settings节点 <settings> <setting name="cacheEnable ...
- mybatis 的动态sql语句是基于OGNL表达式的。
mybatis 的动态sql语句是基于OGNL表达式的.可以方便的在 sql 语句中实现某些逻辑. 总体说来mybatis 动态SQL 语句主要有以下几类:1. if 语句 (简单的条件判断)2. c ...
- MyBatis中动态SQL语句完成多条件查询
一看这标题,我都感觉到是mybatis在动态SQL语句中的多条件查询是多么的强大,不仅让我们用SQL语句完成了对数据库的操作:还通过一些条件选择语句让我们SQL的多条件.动态查询更加容易.简洁.直观. ...
- mybatis mapper文件sql语句传入hashmap参数
1.怎样在mybatis mapper文件sql语句传入hashmap参数? 答:直接这样写map就可以 <select id="selectTeacher" paramet ...
- Mybatis中动态SQL语句中的parameterType不同数据类型的用法
Mybatis中动态SQL语句中的parameterType不同数据类型的用法1. 简单数据类型, 此时#{id,jdbcType=INTEGER}中id可以取任意名字如#{a,jdbcType ...
- mybatis日志,打印sql语句,输出sql
mybatis日志,打印sql语句,输出sql<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE ...
随机推荐
- webgote的例子(2)Sql注入(SearchGET)
Sql注入(Search/GET) 大家好!!! 现如今web服务在我们的网络上遍地都是,各个终端设备成为我们看不见的客户,web服务也成为公司的招牌.80 443为我们展现的视角也是多姿多彩但背后新 ...
- offset宏的讲解【转】
转自:http://blog.csdn.net/tigerjibo/article/details/8299584 1.offset宏讲解 #define offsetof(TYPE, MEMBER) ...
- C++之模板编程
当我们越来越多的使用C++的特性, 将越来越多的问题和事物抽象成对象时, 我们不难发现:很多对象都具有共性. 比如 数值可以增加.减少:字符串也可以增加减少. 它们的动作是相似的, 只是对象的类型不同 ...
- python3.4.3安装allure2记录
一.安装:cmd执行命令pip install allure-pytest 二.下载allure2:2.7.0版本 https://dl.bintray.com/qameta/generic/io/q ...
- SSL证书生成方法【转】
转自 SSL证书生成方法 - fyang的专栏 - 博客频道 - CSDN.NEThttp://blog.csdn.net/fyang2007/article/details/6180361 一般情况 ...
- iscsi服务器的搭建
1.在您的存储服务器上,以 root 用户身份使用 yum 命令安装 scsi-t arget -ut ils 软件包. # yum install -y scsi-target-utils 2.把您 ...
- 使用xbee连接地面站和飞控
Zigbee是一种短距离.低功耗的近距离无线组网通讯技术,主要适用于自动控制和远程控制领域,可以嵌入各种设备. DIGI的ZigBee产品XBee小型但却是一个功能完善的ZigBee收发器(即接收器/ ...
- 安装在Ubuntu上的Python虚拟环境
安装指南是在 Ubuntu 下面操作的.不同的 Linux 版本,安装指令不同.所以,该指南的某些指令对于像 CentOS 等非 Ubuntu 系统不适用. 为什么需要使用虚拟环境? 虚拟环境是一个将 ...
- Zabbix3.0源码安装
环境:nginx1.6.3 php-5.6.22 mysql-5.5.49 请参考前面的博文自行搭建 安装依赖并创建用户 [root@test88 ~]# yum install -y libxml2 ...
- Tomcat集群的session共享
配置Tomcat的session共享可以有三种解决方案: 第一种是以负载均衡服务器本身提供的session共享策略,每种服务器的配置是不一样的并且nginx本身是没有的. 第二种是利用web容器本身的 ...