package li.druid;
import java.sql.Connection;
import java.sql.SQLException;
import li.ioc.Ioc;
import li.util.Log;
import li.util.Verify;
import com.alibaba.druid.pool.DruidDataSource;
public class DruidAdapter extends DruidDataSource {
private static final long serialVersionUID = 8840084696561752691L;
private static final Log log = Log.init();
/**
* 替换内置的setFilters
*/
public void setDruidFilters(String filters) throws SQLException {
String[] filterArray = (Verify.isEmpty(filters)) ? new String[0] : filters.split("\\,");
for (String item : filterArray) {
if ("wall".equals(item)) {
log.info("using li.druid.WallDruidFilter");
WallDruidFilter wallFilter = Ioc.get(WallDruidFilter.class);
super.getProxyFilters().add(null != wallFilter ? wallFilter : new WallDruidFilter());
} else {
super.setFilters(item);
}
}
}
/**
* 不允许初始化DataSource后使用不同的密码获取Connection
*/
public Connection getConnection(String username, String password) throws SQLException {
log.warn("not allowed to get a connection using new username and password after datasource inited !!!");
return super.getConnection();
}
}