日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 芯聞號 > 充電吧
[導讀]現(xiàn)大家使用的ibatis,hibernate,spring jdbc的sql日志信息,有一點個缺點是占位符與參數(shù)是分開打印的,如果想要拷貝sql至PLSQL Developer客戶端直接執(zhí)行,需要自己

現(xiàn)大家使用的ibatis,hibernate,spring jdbc的sql日志信息,有一點個缺點是占位符與參數(shù)是分開打印的,如果想要拷貝sql至PLSQL Developer客戶端直接執(zhí)行,需要自己拼湊sql。而log4jdbc是在jdbc層的一個日志框架,可以將占位符與參數(shù)全部合并在一起顯示,方便直接拷貝sql在PLSQL Developer等客戶端直接執(zhí)行,加快調試速度。

?

一.簡單介紹:

1.沒有使用log4jdbc前sql顯示:

select username,password from bitth_date > ? and age < ? and username = ?

2.使用log4jdbc后sql顯示:

select username,password from bitth_date > to_date(‘2010-11-11’,’yyyy-mm-dd’) and age < 20 and username = ‘qq2008’ {executed in 2 msec}


這樣就可以直接拷貝上面的sql在PLSQL直接執(zhí)行.?最后的?{executed in 2 msec}?為SQL執(zhí)行時間.而如果mysql,日志信息將不會出現(xiàn) to_date()

?

?

二.log4jdbc使用:

?

1.spring xml配置(攔截需要處理的dataSource連接)


????log4jdbcInterceptordataSource

2.log4j.properties配置:


log4j.logger.jdbc.sqlonly=OFF
log4j.logger.jdbc.sqltiming=INFO
log4j.logger.jdbc.audit=OFF
log4j.logger.jdbc.resultset=OFF
log4j.logger.jdbc.connection=OFF


(日志信息如果全部為off,log4jdbc將不會生效,因此對性能沒有任何影響)


3.下載slf4j

??? log4jdbc需要依賴slf4j日志框架.?http://www.slf4j.org/

?

三.擴展說明

?

DataSourceSpyInterceptor為我自己擴展的一個攔截器類,擴展主要是使用AOP的方式,因為log4jdbc原來的方式不適合我的項目.具體源碼為:

import?org.aopalliance.intercept.MethodInterceptor;
import?org.aopalliance.intercept.MethodInvocation;

public?class?DataSourceSpyInterceptor?implements?MethodInterceptor?{

	private?RdbmsSpecifics?rdbmsSpecifics?=?null;
	
????private?RdbmsSpecifics?getRdbmsSpecifics(Connection?conn)?{
????????if(rdbmsSpecifics?==?null)?{
????????????rdbmsSpecifics?=?DriverSpy.getRdbmsSpecifics(conn);
????????}
????????return?rdbmsSpecifics;
????}
????
	public?Object?invoke(MethodInvocation?invocation)?throws?Throwable?{
		Object?result?=?invocation.proceed();
		if(SpyLogFactory.getSpyLogDelegator().isJdbcLoggingEnabled())?{
????		if(result?instanceof?Connection)?{
????			Connection?conn?=?(Connection)result;
????			return?new?ConnectionSpy(conn,getRdbmsSpecifics(conn));
????		}
		}
		return?result;
	}

}




?


本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關閉