diff --git a/src/main/java/com/alibaba/druid/pool/DruidDataSourceC3P0Adapter.java b/src/main/java/com/alibaba/druid/pool/DruidDataSourceC3P0Adapter.java index afc7838ac1..cc7a0ed347 100644 --- a/src/main/java/com/alibaba/druid/pool/DruidDataSourceC3P0Adapter.java +++ b/src/main/java/com/alibaba/druid/pool/DruidDataSourceC3P0Adapter.java @@ -3,6 +3,7 @@ package com.alibaba.druid.pool; import java.io.PrintWriter; import java.sql.Connection; import java.sql.SQLException; +import java.util.Properties; import javax.sql.DataSource; @@ -63,6 +64,30 @@ public class DruidDataSourceC3P0Adapter implements DataSource, DruidDataSourceC3 return dataSource.getConnection(username, password); } + public String getDriverClass() { + return dataSource.getDriverClassName(); + } + + public void setDriverClass(String driverClass) { + dataSource.setDriverClassName(driverClass); + } + + public String getJdbcUrl() { + return dataSource.getUrl(); + } + + public void setJdbcUrl(String jdbcUrl) { + dataSource.setUrl(jdbcUrl); + } + + public Properties getProperties() { + return dataSource.getConnectProperties(); + } + + public void setProperties(Properties properties) { + dataSource.setConnectProperties(properties); + } + public String getUser() { return dataSource.getUsername(); } @@ -96,11 +121,11 @@ public class DruidDataSourceC3P0Adapter implements DataSource, DruidDataSourceC3 } public int getIdleConnectionTestPeriod() { - return (int) dataSource.getTimeBetweenEvictionRunsMillis(); + return (int) (dataSource.getTimeBetweenEvictionRunsMillis() / 1000); } public void setIdleConnectionTestPeriod(int idleConnectionTestPeriod) { - dataSource.setTimeBetweenEvictionRunsMillis(idleConnectionTestPeriod); + dataSource.setTimeBetweenEvictionRunsMillis(((long) idleConnectionTestPeriod) * 1000L); } public int getInitialPoolSize() { @@ -112,11 +137,11 @@ public class DruidDataSourceC3P0Adapter implements DataSource, DruidDataSourceC3 } public int getMaxIdleTime() { - return (int) dataSource.getMinEvictableIdleTimeMillis(); + return (int) dataSource.getMinEvictableIdleTimeMillis() / 1000; } public void setMaxIdleTime(int maxIdleTime) { - dataSource.setMinEvictableIdleTimeMillis(maxIdleTime); + dataSource.setMinEvictableIdleTimeMillis(((long) maxIdleTime) * 1000L); } public int getMaxPoolSize() { diff --git a/src/main/java/com/alibaba/druid/pool/DruidDataSourceC3P0AdapterMBean.java b/src/main/java/com/alibaba/druid/pool/DruidDataSourceC3P0AdapterMBean.java index 6984918c6e..6884014308 100644 --- a/src/main/java/com/alibaba/druid/pool/DruidDataSourceC3P0AdapterMBean.java +++ b/src/main/java/com/alibaba/druid/pool/DruidDataSourceC3P0AdapterMBean.java @@ -1,7 +1,15 @@ package com.alibaba.druid.pool; +import java.util.Properties; + public interface DruidDataSourceC3P0AdapterMBean { + String getDriverClass(); + + String getJdbcUrl(); + + Properties getProperties(); + String getUser(); int getCheckoutTimeout(); @@ -23,13 +31,13 @@ public interface DruidDataSourceC3P0AdapterMBean { boolean isTestConnectionOnCheckin(); String getPreferredTestQuery(); - + int getNumIdleConnections(); - + int getNumConnections(); - + String getDataSourceName(); - + int getNumBusyConnections(); // ////////// @@ -43,6 +51,6 @@ public interface DruidDataSourceC3P0AdapterMBean { int getWaitThreadCount(); int getLockQueueLength(); - + void close(); }