mybatis输出SQL
1.导包
下载一个log4j-1.2.17.jar,放到WEB-INF的lib下,并加入build path
2.创建配置文件
在src下创建log4j.properties,填入以下内容:
log4j.rootLogger=DEBUG,Console
#Console
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n
log4j.logger.org.apache=INFO log4j.logger.com.ibatis = ERROR
log4j.logger.com.ibatis.common.jdbc.SimpleDataSource = ERROR
log4j.logger.com.ibatis.common.jdbc.ScriptRunner = ERROR
log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate = ERROR log4j.logger.java.sql.Connection=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG
log4j.logger.java.sql.ResultSet=DEBUG
重点在于后面四句,至于前面的那些配置的作用,我还没有彻底弄明白。
3.执行程序
此时可以发现控制台在每次执行数据库操作时打印出了相应的SQL语句
如果需要在某些代码段后面手动加入一些日志标记,也可以使用:
Logger logger = Logger.getLogger(当前类名.class);
//使用默认的配置信息,不需要写log4j.properties
BasicConfigurator.configure();
//设置日志输出级别为info,这将覆盖配置文件中设置的级别
logger.setLevel(Level.INFO);
//下面的消息将被输出
logger.info("this is an info");
logger.warn("this is a warn");
logger.error("this is an error");
logger.fatal("this is a fatal");
如果没有调用BasicConfigurator.configure(),PropertyConfigurator.configure()或DOMConfigurator.configure()方法,Log4j会自动加载CLASSPATH下名为log4j.properties的配置文件。(所以上面的代码没有调用这个)
如果把此配置文件改为其他名字,例如my.properties,程序虽然仍能运行,但会报出不能正确初始化Log4j系统的提示。这时可以在程序中加上:
PropertyConfigurator.configure("classes/my.properties");
mybatis输出SQL的更多相关文章
- springBoot和Mybatis输出sql日志
		
利用slf4j来输出日志. 首先需要版本兼容的slf4j-log4j12.log4j.slf4j-api.slf4j-nop.slf4j-simple这5个包. 可以去maven知识库中找到这5个包的 ...
 - mybatis输出sql语句
		
方法一: 这种方法是mybatis官网上介绍的,比较好用: log4j.properties: log4j.rootLogger=ERROR,consolelog4j.appender.console ...
 - MyBatis输出sql需要log4j.properties配置
		
# Global logging configuration log4j.rootLogger=info,stdout,console,logfile # MyBatis logging config ...
 - mybatis 输出sql日志
		
logging.level.com.dsmp.server.core.pgsqldao=debug com.dsmp.server.core.pgsqldao 为包名
 - log4j打印mybatis执行sql,将占位符换成真实的参数输出
		
背景: 在我日常码代码的时候,由于对mybatis的动态sql,比较依赖,并且有时候需求复杂,导致sql较长,而且参数众多,当出现问题是,需要将sql,放到navicat里面去执行查看结果,但是对于复 ...
 - mybatis日志,打印sql语句,输出sql
		
mybatis日志,打印sql语句,输出sql<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE ...
 - mybatis实战教程(mybatis in action)之八:mybatis 动态sql语句
		
mybatis 的动态sql语句是基于OGNL表达式的.可以方便的在 sql 语句中实现某些逻辑. 总体说来mybatis 动态SQL 语句主要有以下几类:1. if 语句 (简单的条件判断)2. c ...
 - 自己动手实现mybatis动态sql
		
发现要坚持写博客真的是一件很困难的事情,各种原因都会导致顾不上博客.本来打算写自己动手实现orm,看看时间,还是先实现一个动态sql,下次有时间再补上orm完整的实现吧. 用过mybatis的人,估计 ...
 - mybatis防止sql注入
		
SQL注入是一种代码注入技术,用于攻击数据驱动的应用,恶意的SQL语句被插入到执行的实体字段中(例如,为了转储数据库内容给攻击者).[摘自] SQL injection - Wikipedi ...
 
随机推荐
- HashMap与ConcurrentHashMap的区别
			
从JDK1.2起,就有了HashMap,正如前一篇文章所说,HashMap不是线程安全的,因此多线程操作时需要格外小心. 在JDK1.5中,伟大的Doug Lea给我们带来了concurrent包,从 ...
 - [已解决] java 增加 ALPN支持
			
添加javaVM参数: -Xbootclasspath/p:lib/alpn-boot-8.1.10.v20161026.jar 文章来源:http://www.cnblogs.com/gifisan ...
 - echarts在IE8下遮挡其他组件的问题
			
echarts的图在IE8下会浮在上层遮挡住其他组件,解决方式是页面中引入 <meta http-equiv="X-UA-Compatible" content=" ...
 - Linux 我的笔记
			
/home/wangteng/workspace zsh 缩短路径名
 - Xamarin.Forms listview中的button按钮,实现带着参数返回上一级页面
			
今天在做列表显示的时候遇到一个问题,就是在ListView中如何才能让一个button的按钮工作并且包含参数呢? 其实有点类似于rep里的控件无法起获取一样.在Xamarin中,当你button绑定事 ...
 - ansible非root用户批量修改root密码
			
前言: 由于线上服务器密码长久没有更新,现领导要求批量更换密码.线上的之前部署过salt,但由于各种因素没有正常使用. 使用自动化工具批量修改的计划搁浅了,后来领导给了个python多线程修改密码脚本 ...
 - Windows下nodejs 模块配置 全局模式与本地模式的区别
			
第1步:下载.安装文件 (nodejs的官网http://www.nodejs.org/download/ ) 第2步:安装相关模块环境 打开C:\Program Files\nodejs 目录你会发 ...
 - Xcode 8 Swift 类似插件方法
			
Xcode8 Swift使用技巧 1 option + cmd + / 可以弹出注释 2 color 然后加 enter 可以弹出颜色选择 3 #FIXME: 警告 4 #MARK: 备注 ...
 - 关于欧几里得算法求最大公约数,即OJ1029的参考解法
			
#include <stdio.h> int main(int argc, char *argv[]) { int a,b,c; scanf("%d %d",& ...
 - iOS改变字母的大小写
			
使用lowercaseString,uppercaseString -(void)test{ NSString * str = @"person"; NSString * str1 ...