package jef.database.datasource;
import java.beans.PropertyVetoException;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Properties;
import javax.sql.DataSource;
import jef.common.log.LogUtil;
import com.mchange.v2.c3p0.ComboPooledDataSource;
public class C3p0DataSourceWrapper extends AbstractDataSource implements DataSourceWrapper{
private ComboPooledDataSource datasource;
public C3p0DataSourceWrapper() {
datasource=new ComboPooledDataSource();
}
public String getUrl() {
return datasource.getJdbcUrl();
}
public String getUser() {
return datasource.getUser();
}
public String getPassword() {
return datasource.getPassword();
}
public String getDriverClass() {
return datasource.getDriverClass();
}
public void setUrl(String url) {
datasource.setJdbcUrl(url);
}
public void setUser(String user) {
datasource.setUser(user);
}
public void setPassword(String password) {
datasource.setPassword(password);
}
public void setDriverClass(String driverClassName) {
try {
datasource.setDriverClass(driverClassName);
} catch (PropertyVetoException e) {
LogUtil.exception(e);
}
}
public Connection getConnection() throws SQLException {
return datasource.getConnection();
}
public Connection getConnection(String username, String password) throws SQLException {
return datasource.getConnection(username,password);
}
public boolean isConnectionPool() {
return true;
}
public void setWrappedDataSource(DataSource ds) {
this.datasource=(ComboPooledDataSource)ds;
}
@Override
protected Class<? extends DataSource> getWrappedClass() {
return ComboPooledDataSource.class;
}
public Properties getProperties() {
return datasource.getProperties();
}
public void putProperty(String key, Object value) {
datasource.getProperties().put(key, value);
}
}