# mydatasource **Repository Path**: mrpanyu/mydatasource ## Basic Information - **Project Name**: mydatasource - **Description**: JDBC wrapper to create custom interceptor functions - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2018-02-09 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # MyDataSource MyDataSource是一个在JDBC API基础上进行包装代理的组件,可以对原始数据源提供的Connection/Statement等对象增加额外包装,实现不修改业务程序代码的情况下对JDBC操作进行记录监控和问题排查。
## 使用方法 将mydatasource.jar置入工程classpath中,所需依赖jar包仅commons-logging.jar。 注:目前因JDK6与JDK8中JDBC接口版本不同,目前拆分为两套工程。用法与具体代码内容基本一致,仅JDBC部分因接口差异JDK8版本额外多几个方法。 一般通过spring配置将其集成到应用中: mydatasource.utility.logging.LoggingConnectionDecorator mydatasource.utility.statistic.StatisticConnectionDecorator mydatasource.utility.bigresult.BigResultConnectionDecorator mydatasource.utility.sqlcatch.SqlCatchConnectionDecorator 500 true true com.mycompany;-$$FastClassByCGLIB$$;-$$EnhancerByCGLIB$$ 30 60 500,1000,2000 true true select count\(\*\) from users where .+; select \* from company .+; MyDataSource各组件均通过commons-logging进行日志输出,需配合工程中对应的日志组件使用,如示例的log4j配置片段如下: log4j.appender.mydatasource_logging=org.apache.log4j.DailyRollingFileAppender log4j.appender.mydatasource_logging.File=logs/mydatasource_logging.log log4j.appender.mydatasource_logging.Append=true log4j.appender.mydatasource_logging.layout=org.apache.log4j.PatternLayout log4j.appender.mydatasource_logging.layout.ConversionPattern=[%d{yyyy-MM-dd HH:mm:ss}][%p][%c]%n%m%n # 这里配置DEBUG级别适用于开发环境看所有sql,配置为WARN级别只记录执行时间超过配置值的sql log4j.logger.mydatasource.utility.logging=DEBUG,mydatasource_logging log4j.additivity.mydatasource.utility.logging=false log4j.appender.mydatasource_statistic=org.apache.log4j.DailyRollingFileAppender log4j.appender.mydatasource_statistic.File=logs/mydatasource_statistic.log log4j.appender.mydatasource_statistic.Append=true log4j.appender.mydatasource_statistic.layout=org.apache.log4j.PatternLayout log4j.appender.mydatasource_statistic.layout.ConversionPattern=[%d{yyyy-MM-dd HH:mm:ss}][%p][%c]%n%m%n log4j.logger.mydatasource.utility.statistic=INFO,mydatasource_statistic log4j.additivity.mydatasource.utility.statistic=false log4j.appender.mydatasource_bigresult=org.apache.log4j.DailyRollingFileAppender log4j.appender.mydatasource_bigresult.File=logs/mydatasource_bigresult.log log4j.appender.mydatasource_bigresult.Append=true log4j.appender.mydatasource_bigresult.layout=org.apache.log4j.PatternLayout log4j.appender.mydatasource_bigresult.layout.ConversionPattern=[%d{yyyy-MM-dd HH:mm:ss}][%p][%c]%n%m%n log4j.logger.mydatasource.utility.bigresult=INFO,mydatasource_bigresult log4j.additivity.mydatasource.utility.bigresult=false log4j.appender.mydatasource_sqlcatch=org.apache.log4j.DailyRollingFileAppender log4j.appender.mydatasource_sqlcatch.File=logs/mydatasource_sqlcatch.log log4j.appender.mydatasource_sqlcatch.Append=true log4j.appender.mydatasource_sqlcatch.layout=org.apache.log4j.PatternLayout log4j.appender.mydatasource_sqlcatch.layout.ConversionPattern=[%d{yyyy-MM-dd HH:mm:ss}][%p][%c]%n%m%n log4j.logger.mydatasource.utility.sqlcatch=INFO,mydatasource_sqlcatch log4j.additivity.mydatasource.utility.sqlcatch=false