原博文出自于:  http://www.cnblogs.com/xdp-gacl/p/4081848.html      感谢!

一、log4jdbc的简单介绍

  使用log4jdbc在不改变原有代码的情况下,就可以收集执行的SQL文和JDBC执行情况。

  平时开发使用的ibatis,hibernate,spring jdbc的sql日志信息,有一点个缺点是占位符与参数是分开打印的,如果想要拷贝sql至PLSQL Developer客户端直接执行,需要自己拼凑sql。而log4jdbc是在jdbc层的一个日志框架,可以将占位符与参数全部合并在一起显示,方便直接拷贝sql在PLSQL Developer等客户端直接执行,加快调试速度。

二、log4jdbc的使用

  下载log4jdbc的jar包log4jdbc-1.2.jar以及依赖的相关Jar包log4j-1.2.17.jar、slf4j-api-1.6.0.jar、slf4j-log4j12-1.7.7.jar,如下图所示:

  aaarticlea/png;base64,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" alt="" />

  配置log4j的log4j.properties的配置文件,如下所示:

log4j.logger.jdbc.sqlonly=DEBUG,console
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss.SSS} %m%n%n
log4j.logger.jdbc.sqltiming=INFO,console
log4j.logger.jdbc.connection=INFO,console

  修改dbconfig.properties配置文件的url和driverClassName

 1 url:jdbc:log4jdbc:mysql://localhost:3306/xdptest
2 driverClassName:net.sf.log4jdbc.DriverSpy
3 username:root
4 password:root
5 filters:stat
6 maxActive:200
7 initialSize:20
8 maxWait:60000
9 minIdle:10
10 timeBetweenEvictionRunsMillis:60000
11 minEvictableIdleTimeMillis:300000
12 validationQuery:SELECT 'x'
13 testWhileIdle:true
14 testOnBorrow:false
15 testOnReturn:false
16 removeAbandoned:false
17 removeAbandonedTimeout:1800
18 logAbandoned:true

  经过这样的配置之后,就可以使用log4jdbc记录应用系统执行的SQL信息了。

  编写一个测试Servlet进行测试,代码如下:

 1 /**
2 *
3 */
4 package me.gacl.web.controller;
5
6 import java.io.IOException;
7 import java.sql.Connection;
8 import java.sql.PreparedStatement;
9 import java.sql.SQLException;
10 import java.util.UUID;
11 import javax.servlet.ServletException;
12 import javax.servlet.http.HttpServlet;
13 import javax.servlet.http.HttpServletRequest;
14 import javax.servlet.http.HttpServletResponse;
15 import me.gacl.util.DataSourceUtil;
16
17 /**
18 * <p>ClassName: TestServlet<p>
19 * <p>Description: <p>
20 * <p>Company:广州利迪网络科技有限公司 <p>
21 * @author xudp
22 * @version 1.0 V
23 * @createTime 2014-11-5 下午01:49:49
24 */
25 public class TestServlet extends HttpServlet {
26
27 public void doGet(HttpServletRequest request, HttpServletResponse response)
28 throws ServletException, IOException {
29 String sql = "INSERT INTO LD_USER(ID,USERNAME,USERCODE,PASSWORD) VALUES(?,?,?,?)";
30 Connection connection = DataSourceUtil.getConnection();
31 PreparedStatement pstmt = null;
32 try {
33 pstmt = connection.prepareStatement(sql);
34 pstmt.setString(1, UUID.randomUUID().toString());
35 pstmt.setString(2, "孤傲苍狼");
36 pstmt.setString(3, "gacl");
37 pstmt.setString(4, "xdp");
38 int executeResult = pstmt.executeUpdate();
39 } catch (SQLException e) {
40 e.printStackTrace();
41 }finally{
42 try {
43 pstmt.close();
44 connection.close();
45 } catch (SQLException e) {
46 e.printStackTrace();
47 }
48 }
49 }
50
51 public void doPost(HttpServletRequest request, HttpServletResponse response)
52 throws ServletException, IOException {
53 this.doGet(request, response);
54 }
55 }

  访问TestServlet,执行doGet方法往数据库中插入数据,log4jdbc记录的SQL信息如下图所示:

  aaarticlea/png;base64,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" alt="" width="950" height="38" />

  可以看到,log4jdbc记录出了SQL的执行的时间,执行时的参数以及执行耗时。这对于我们在开发中查找SQL错误是非常有帮助的。

转】使用log4jdbc记录SQL信息的更多相关文章

  1. 使用log4jdbc记录SQL信息

    一.log4jdbc的简单介绍 使用log4jdbc在不改变原有代码的情况下,就可以收集执行的SQL文和JDBC执行情况. 平时开发使用的ibatis,hibernate,spring jdbc的sq ...

  2. Servlet开发 中使用 log4jdbc 记录 hibernate 的 SQL信息

    一.前言 使用log4jdbc在不改变原有代码的情况下,就可以收集执行的SQL文和JDBC执行情况. 平时开发使用的ibatis,hibernate,spring jdbc的sql日志信息,有一点个缺 ...

  3. spring-boot记录sql探索

    目标记录每次请求内的http.es.mysql耗时,本篇讨论mysql部分 为什么说要探索,这不是很简单的事么?但是能满足以下几点么? 能记录limit等参数 能将参数和sql写一起,能直接使用 能记 ...

  4. 记录SQL Server2008日志文件损坏的恢复过程

    记录SQL Server2008日志文件损坏的恢复过程: 环境: 系 统:Windows Server2003 数据库:SQL Server2008 故障原因: 通过mstsc链接同一服务器时,用户界 ...

  5. 如何在MySql中记录SQL日志记录

    My SQL可以用下面方法跟踪sql 语句,以下方法以Windows平台为例,linux雷同:   1  配置my.ini文件(在安装目录,linux下文件名为my.cnf     查找到[mysql ...

  6. 如何在MySql中记录SQL日志

    SQL server有一个sql profiler可以实时跟踪服务器执行的SQL语句,这在很多时候调试错误非常有用.例如:别人写的复杂代码.生产系统.无调试环境.无原代码... ...   查了一下资 ...

  7. 使用hibernate更新数据库记录的信息的相关学习记录

    截选代码(可能遗漏标点符号): package name.sql; import java.util.List; import name.session.HibernateSessionFactory ...

  8. RDIFramework.NET ━ .NET快速信息化系统开发框架 V3.2->新增记录SQL执行过程

    有时我们需要记录整个系统运行的SQL以作分析,特别是在上线前这对我们做内部测试也非常有帮助,当然记录SQL的方法有很多,也可以使用三方的组件.3.2版本我们在框架底层新增了记录框架运行的所有SQl过程 ...

  9. Atitit mysql 存储过程捕获所有异常,以及日志记录异常信息

    Atitit mysql 存储过程捕获所有异常,以及日志记录异常信息 1.1. 异常的处理模式exit  continue undo模式 1 1.2. 捕获所有异常使用        DECLARE ...

随机推荐

  1. Spring MVC的UrlBasedViewResolver和InternalResourceViewResolver

    Spring MVC使用ViewResolver来根据controller中返回的view名关联到具体的View对象.使用View对象来渲染返回值以生成最终的视图,如html,json或pdf等. S ...

  2. UVa 10391 (水题 STL) Compound Words

    今天下午略感无聊啊,切点水题打发打发时间,=_=|| 把所有字符串插入到一个set中去,然后对于每个字符串S,枚举所有可能的拆分组合S = A + B,看看A和B是否都在set中,是的话说明S就是一个 ...

  3. 解同余式ax ≡ c(mod m)

    将式子变形为 ax-c=my 可以看出原式有解当且仅当线性方程ax-my=c有解 设g = gcd(a, m) 则所有形如ax-my的数都是g的倍数 因此如果g不整除c则原方程无解. 下面假设g整除c ...

  4. hibernate一个注册小例子

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAXUAAAJ2CAIAAAAv44WsAAAgAElEQVR4nO29a3QUVaL33fPhfHrW8y

  5. PHP学习笔记06——面向对象版图形计算器

    index.php 用于显示页面 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "h ...

  6. HDU 3555 Bomb (数位DP-记忆化搜索模板)

    题意 求区间[1,n]内含有相邻49的数. 思路 比较简单的按位DP思路.这是第一次学习记忆化搜索式的数位DP,确实比递推形式的更好理解呐,而且也更通用~可以一般化: [数位DP模板总结] int d ...

  7. HDU 1015 Safecracker

    解题思路:这题相当诡异,样例没过,交了,A了,呵呵,因为理论上是可以通过的,所以 我交了一发,然后就神奇的过了.首先要看懂题目. #include<cstdio> #include< ...

  8. 函数式宏定义用do...while(0)的好处

    函数式宏定义经常写成这样:<pre lang="c" escaped="true">#define device_init_wakeup(dev, ...

  9. 深入学习Heritrix---解析CrawlController(转)

    当我们以Web UI方式使用Heritrix时,点击任务开始(start)按钮时,Heritrix就开始了它的爬取工作.但它的内部 执行流程是怎样的呢?别急,下面将慢慢道来. (一)CrawlJobH ...

  10. Android Bitmap实战技巧

    注:本文大量参考谷歌官方文档自http://developer.android.com/intl/zh-cn/training/displaying-bitmaps/index.html.如果你自学能 ...