# 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