this.logAbandoned = logAbandoned;
}
private static DruidXADataSource getDruidXADataSource(String url, String username, String password) {
DruidXAPlugin plugin = new DruidXAPlugin(url, username, password);
DruidXADataSource ds = new DruidXADataSource();
ds.setUrl(plugin.url);
ds.setUsername(plugin.username);
ds.setPassword(plugin.password);
ds.setDriverClassName(plugin.driverClass);
ds.setInitialSize(plugin.initialSize);
ds.setMinIdle(plugin.minIdle);
ds.setMaxActive(plugin.maxActive);
ds.setMaxWait(plugin.maxWait);
ds.setTimeBetweenConnectErrorMillis(plugin.timeBetweenConnectErrorMillis);
ds.setTimeBetweenEvictionRunsMillis(plugin.timeBetweenEvictionRunsMillis);
ds.setMinEvictableIdleTimeMillis(plugin.minEvictableIdleTimeMillis);
ds.setValidationQuery(plugin.validationQuery);
ds.setTestWhileIdle(plugin.testWhileIdle);
ds.setTestOnBorrow(plugin.testOnBorrow);
ds.setTestOnReturn(plugin.testOnReturn);
ds.setRemoveAbandoned(plugin.removeAbandoned);
ds.setRemoveAbandonedTimeoutMillis(plugin.removeAbandonedTimeoutMillis);
ds.setLogAbandoned(plugin.logAbandoned);
//只要maxPoolPreparedStatementPerConnectionSize>0,poolPreparedStatements就会被自动设定为true,参照druid的源码
ds.setMaxPoolPreparedStatementPerConnectionSize(plugin.maxPoolPreparedStatementPerConnectionSize);
if (StrKit.notBlank(plugin.filters))
try {
ds.setFilters(plugin.filters);
} catch (SQLException e) {
throw new RuntimeException(e);
}
plugin.addFilterList(ds);
return ds;