improve Utils Performance

This commit is contained in:
wenshao
2012-08-12 20:56:28 +08:00
parent c7e33b6697
commit 01f6ac4012
3 changed files with 56 additions and 2 deletions
@@ -6,6 +6,7 @@ import java.util.Map;
import javax.management.ObjectName;
import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.support.logging.Log;
import com.alibaba.druid.support.logging.LogFactory;
@@ -14,6 +15,10 @@ public class DruidDataSourceUtils {
private final static Log LOG = LogFactory.getLog(DruidDataSourceUtils.class);
public static String getUrl(Object druidDatasource) {
if (druidDatasource.getClass() == DruidDataSource.class) {
return ((DruidDataSource) druidDatasource).getUrl();
}
try {
Method method = druidDatasource.getClass().getMethod("getUrl");
Object obj = method.invoke(druidDatasource);
@@ -25,6 +30,10 @@ public class DruidDataSourceUtils {
}
public static ObjectName getObjectName(Object druidDatasource) {
if (druidDatasource.getClass() == DruidDataSource.class) {
return ((DruidDataSource) druidDatasource).getObjectName();
}
try {
Method method = druidDatasource.getClass().getMethod("getObjectName");
Object obj = method.invoke(druidDatasource);
@@ -36,6 +45,10 @@ public class DruidDataSourceUtils {
}
public static Object getSqlStat(Object druidDatasource, int sqlId) {
if (druidDatasource.getClass() == DruidDataSource.class) {
return ((DruidDataSource) druidDatasource).getSqlStat(sqlId);
}
try {
Method method = druidDatasource.getClass().getMethod("getSqlStat", int.class);
Object obj = method.invoke(druidDatasource, sqlId);
@@ -47,6 +60,10 @@ public class DruidDataSourceUtils {
}
public static boolean isRemoveAbandoned(Object druidDatasource) {
if (druidDatasource.getClass() == DruidDataSource.class) {
return ((DruidDataSource) druidDatasource).isRemoveAbandoned();
}
try {
Method method = druidDatasource.getClass().getMethod("isRemoveAbandoned");
Object obj = method.invoke(druidDatasource);
@@ -59,6 +76,10 @@ public class DruidDataSourceUtils {
@SuppressWarnings("unchecked")
public static Map<String, Object> getStatDataForMBean(Object druidDatasource) {
if (druidDatasource.getClass() == DruidDataSource.class) {
return ((DruidDataSource) druidDatasource).getStatDataForMBean();
}
try {
Method method = druidDatasource.getClass().getMethod("getStatDataForMBean");
Object obj = method.invoke(druidDatasource);
@@ -71,6 +92,10 @@ public class DruidDataSourceUtils {
@SuppressWarnings("unchecked")
public static Map<String, Object> getStatData(Object druidDatasource) {
if (druidDatasource.getClass() == DruidDataSource.class) {
return ((DruidDataSource) druidDatasource).getStatData();
}
try {
Method method = druidDatasource.getClass().getMethod("getStatData");
Object obj = method.invoke(druidDatasource);
@@ -83,6 +108,10 @@ public class DruidDataSourceUtils {
@SuppressWarnings({ "rawtypes" })
public static Map getSqlStatMap(Object druidDatasource) {
if (druidDatasource.getClass() == DruidDataSource.class) {
return ((DruidDataSource) druidDatasource).getSqlStatMap();
}
try {
Method method = druidDatasource.getClass().getMethod("getSqlStatMap");
Object obj = method.invoke(druidDatasource);
@@ -95,6 +124,10 @@ public class DruidDataSourceUtils {
@SuppressWarnings("unchecked")
public static List<Map<String, Object>> getPoolingConnectionInfo(Object druidDatasource) {
if (druidDatasource.getClass() == DruidDataSource.class) {
return ((DruidDataSource) druidDatasource).getPoolingConnectionInfo();
}
try {
Method method = druidDatasource.getClass().getMethod("getPoolingConnectionInfo");
Object obj = method.invoke(druidDatasource);
@@ -107,6 +140,10 @@ public class DruidDataSourceUtils {
@SuppressWarnings("unchecked")
public static List<String> getActiveConnectionStackTrace(Object druidDatasource) {
if (druidDatasource.getClass() == DruidDataSource.class) {
return ((DruidDataSource) druidDatasource).getActiveConnectionStackTrace();
}
try {
Method method = druidDatasource.getClass().getMethod("getActiveConnectionStackTrace");
Object obj = method.invoke(druidDatasource);