【原】配置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 ...
随机推荐
- 笔记本自开wifi设置
笔记本自开wifi设置 是这样的有些笔记本他自身就可以放出热点供其他的小伙伴们连接,不用非得去下专门的工具有些笔记本的网卡是自带支持双收发的(这里注意我指的是有些笔记本不是全部) 命令我已经写出来了 ...
- linux编程之main()函数启动过程【转】
转自:http://blog.csdn.net/gary_ygl/article/details/8506007 1 最简单的程序 1)编辑helloworld程序,$vim helloworld. ...
- 解决UC手机字体变大的有关问题
解决UC手机字体变大的问题 UC手机浏览器在识别到页面文字很多的情况下会自动放大字体优化阅读体验,如果要关闭这个功能需要在网页头部添加: <meta name="wap-font-sc ...
- csu 1756(数论+去重)
Prime Time Limit: 3 Sec Memory Limit: 128 MBSubmit: 84 Solved: 12[Submit][Status][Web Board] Descr ...
- 获取ios设备系统信息的方法 之 [UIDevice currentDevice]
获取iphone的系统信息使用[UIDevice currentDevice],信息如下: [[UIDevice currentDevice] systemName]:系统名称,如iPhone OS ...
- 洛谷P1803凌乱的yyy 题解
题目传送门 这道题也是贪心思想.先排序一遍(按照结束的时间排)在进行扫描,满足条件的直接保存,增加ans,最后输出即可. #include<bits/stdc++.h> using nam ...
- 关于node.js的模块查找顺序(require.resolve())
前几天社团群里有人问了阿里秋季前端笔试的一道题,想起来以前在官方文档看到过查找模块的算法,干脆自己写一写…… 官方的require.resolve实现在这里. 因为我只是想看看查找过程,所以就直接把会 ...
- powershell 性能测试小脚本
powershell 性能测试: 转载请注明: 仰望高端玩家的小清新 http://www.cnblogs.com/luruiyuan/ 1. 将待测试的脚本封装在代码块中 2. 使用 Get-Ch ...
- http请求,HttpClient,调用短信接口
项目中安全设置找回密码的功能,需要通过发送短信验证绑定手机,通过绑定的手机号验证并重新设置密码. 因为项目是通过maven管理的,所以需要在pom.xml文件中引入jar包, maven引入的jar包 ...
- EAP-MD5认证暴力破解工具eapmd5pass
EAP-MD5认证暴力破解工具eapmd5pass EAP-MD5是一种基于802.1x协议的认证机制.由于该机制存在漏洞,所以并不能保证数据安全.Kali Linux预置一个专用工具eapmd5 ...