47 lines
2.0 KiB
Java
47 lines
2.0 KiB
Java
|
|
|
|
package io.linfeng.datasource.config;
|
|
|
|
import com.alibaba.druid.pool.DruidDataSource;
|
|
import io.linfeng.datasource.properties.DataSourceProperties;
|
|
|
|
import java.sql.SQLException;
|
|
|
|
/**
|
|
* DruidDataSource
|
|
*
|
|
* @since 1.0.0
|
|
*/
|
|
public class DynamicDataSourceFactory {
|
|
|
|
public static DruidDataSource buildDruidDataSource(DataSourceProperties properties) {
|
|
DruidDataSource druidDataSource = new DruidDataSource();
|
|
druidDataSource.setDriverClassName(properties.getDriverClassName());
|
|
druidDataSource.setUrl(properties.getUrl());
|
|
druidDataSource.setUsername(properties.getUsername());
|
|
druidDataSource.setPassword(properties.getPassword());
|
|
|
|
druidDataSource.setInitialSize(properties.getInitialSize());
|
|
druidDataSource.setMaxActive(properties.getMaxActive());
|
|
druidDataSource.setMinIdle(properties.getMinIdle());
|
|
druidDataSource.setMaxWait(properties.getMaxWait());
|
|
druidDataSource.setTimeBetweenEvictionRunsMillis(properties.getTimeBetweenEvictionRunsMillis());
|
|
druidDataSource.setMinEvictableIdleTimeMillis(properties.getMinEvictableIdleTimeMillis());
|
|
druidDataSource.setMaxEvictableIdleTimeMillis(properties.getMaxEvictableIdleTimeMillis());
|
|
druidDataSource.setValidationQuery(properties.getValidationQuery());
|
|
druidDataSource.setValidationQueryTimeout(properties.getValidationQueryTimeout());
|
|
druidDataSource.setTestOnBorrow(properties.isTestOnBorrow());
|
|
druidDataSource.setTestOnReturn(properties.isTestOnReturn());
|
|
druidDataSource.setPoolPreparedStatements(properties.isPoolPreparedStatements());
|
|
druidDataSource.setMaxOpenPreparedStatements(properties.getMaxOpenPreparedStatements());
|
|
druidDataSource.setSharePreparedStatements(properties.isSharePreparedStatements());
|
|
|
|
try {
|
|
druidDataSource.setFilters(properties.getFilters());
|
|
druidDataSource.init();
|
|
} catch (SQLException e) {
|
|
e.printStackTrace();
|
|
}
|
|
return druidDataSource;
|
|
}
|
|
} |