mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-05-09 23:51:34 +08:00
fix code
This commit is contained in:
parent
a7abbf5402
commit
883441a113
@ -57,41 +57,41 @@ public class DbSetting {
|
|||||||
* @param group 分组
|
* @param group 分组
|
||||||
* @return 分组
|
* @return 分组
|
||||||
*/
|
*/
|
||||||
public DbConfig getDbConfig(final String group) {
|
public PooledDbConfig getDbConfig(final String group) {
|
||||||
final Setting config = setting.getSetting(group);
|
final Setting config = setting.getSetting(group);
|
||||||
if (MapUtil.isEmpty(config)) {
|
if (MapUtil.isEmpty(config)) {
|
||||||
throw new DbRuntimeException("No Hutool pool config for group: [{}]", group);
|
throw new DbRuntimeException("No Hutool pool config for group: [{}]", group);
|
||||||
}
|
}
|
||||||
|
|
||||||
final DbConfig dbConfig = new DbConfig();
|
final PooledDbConfig pooledDbConfig = new PooledDbConfig();
|
||||||
|
|
||||||
// 基本信息
|
// 基本信息
|
||||||
final String url = config.getAndRemove(DSKeys.KEY_ALIAS_URL);
|
final String url = config.getAndRemove(DSKeys.KEY_ALIAS_URL);
|
||||||
if (StrUtil.isBlank(url)) {
|
if (StrUtil.isBlank(url)) {
|
||||||
throw new DbRuntimeException("No JDBC URL for group: [{}]", group);
|
throw new DbRuntimeException("No JDBC URL for group: [{}]", group);
|
||||||
}
|
}
|
||||||
dbConfig.setUrl(url);
|
pooledDbConfig.setUrl(url);
|
||||||
// 自动识别Driver
|
// 自动识别Driver
|
||||||
final String driver = config.getAndRemove(DSKeys.KEY_ALIAS_DRIVER);
|
final String driver = config.getAndRemove(DSKeys.KEY_ALIAS_DRIVER);
|
||||||
dbConfig.setDriver(StrUtil.isNotBlank(driver) ? driver : DriverUtil.identifyDriver(url));
|
pooledDbConfig.setDriver(StrUtil.isNotBlank(driver) ? driver : DriverUtil.identifyDriver(url));
|
||||||
dbConfig.setUser(config.getAndRemove(DSKeys.KEY_ALIAS_USER));
|
pooledDbConfig.setUser(config.getAndRemove(DSKeys.KEY_ALIAS_USER));
|
||||||
dbConfig.setPass(config.getAndRemove(DSKeys.KEY_ALIAS_PASSWORD));
|
pooledDbConfig.setPass(config.getAndRemove(DSKeys.KEY_ALIAS_PASSWORD));
|
||||||
|
|
||||||
// 连接池相关信息
|
// 连接池相关信息
|
||||||
dbConfig.setInitialSize(setting.getIntByGroup("initialSize", group, 0));
|
pooledDbConfig.setInitialSize(setting.getIntByGroup("initialSize", group, 0));
|
||||||
dbConfig.setMinIdle(setting.getIntByGroup("minIdle", group, 0));
|
pooledDbConfig.setMinIdle(setting.getIntByGroup("minIdle", group, 0));
|
||||||
dbConfig.setMaxActive(setting.getIntByGroup("maxActive", group, 8));
|
pooledDbConfig.setMaxActive(setting.getIntByGroup("maxActive", group, 8));
|
||||||
dbConfig.setMaxWait(setting.getLongByGroup("maxWait", group, 6000L));
|
pooledDbConfig.setMaxWait(setting.getLongByGroup("maxWait", group, 6000L));
|
||||||
|
|
||||||
// remarks等特殊配置,since 5.3.8
|
// remarks等特殊配置,since 5.3.8
|
||||||
String connValue;
|
String connValue;
|
||||||
for (final String key : DSKeys.KEY_CONN_PROPS) {
|
for (final String key : DSKeys.KEY_CONN_PROPS) {
|
||||||
connValue = config.get(key);
|
connValue = config.get(key);
|
||||||
if(StrUtil.isNotBlank(connValue)){
|
if(StrUtil.isNotBlank(connValue)){
|
||||||
dbConfig.addConnProps(key, connValue);
|
pooledDbConfig.addConnProps(key, connValue);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return dbConfig;
|
return pooledDbConfig;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -39,7 +39,7 @@ public class PooledConnection extends ConnectionWrapper {
|
|||||||
*/
|
*/
|
||||||
public PooledConnection(final PooledDataSource ds) throws SQLException {
|
public PooledConnection(final PooledDataSource ds) throws SQLException {
|
||||||
this.ds = ds;
|
this.ds = ds;
|
||||||
final DbConfig config = ds.getConfig();
|
final PooledDbConfig config = ds.getConfig();
|
||||||
|
|
||||||
final Props info = new Props();
|
final Props info = new Props();
|
||||||
final String user = config.getUser();
|
final String user = config.getUser();
|
||||||
|
@ -51,27 +51,27 @@ public class PooledDSFactory extends AbstractDSFactory {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected DataSource createDataSource(final String jdbcUrl, final String driver, final String user, final String pass, final Setting poolSetting) {
|
protected DataSource createDataSource(final String jdbcUrl, final String driver, final String user, final String pass, final Setting poolSetting) {
|
||||||
final DbConfig dbConfig = new DbConfig();
|
final PooledDbConfig pooledDbConfig = new PooledDbConfig();
|
||||||
dbConfig.setUrl(jdbcUrl);
|
pooledDbConfig.setUrl(jdbcUrl);
|
||||||
dbConfig.setDriver(driver);
|
pooledDbConfig.setDriver(driver);
|
||||||
dbConfig.setUser(user);
|
pooledDbConfig.setUser(user);
|
||||||
dbConfig.setPass(pass);
|
pooledDbConfig.setPass(pass);
|
||||||
|
|
||||||
// 连接池相关信息
|
// 连接池相关信息
|
||||||
dbConfig.setInitialSize(poolSetting.getInt("initialSize", 0));
|
pooledDbConfig.setInitialSize(poolSetting.getInt("initialSize", 0));
|
||||||
dbConfig.setMinIdle(poolSetting.getInt("minIdle", 0));
|
pooledDbConfig.setMinIdle(poolSetting.getInt("minIdle", 0));
|
||||||
dbConfig.setMaxActive(poolSetting.getInt("maxActive", 8));
|
pooledDbConfig.setMaxActive(poolSetting.getInt("maxActive", 8));
|
||||||
dbConfig.setMaxWait(poolSetting.getLong("maxWait", 6000L));
|
pooledDbConfig.setMaxWait(poolSetting.getLong("maxWait", 6000L));
|
||||||
|
|
||||||
// remarks等特殊配置,since 5.3.8
|
// remarks等特殊配置,since 5.3.8
|
||||||
String connValue;
|
String connValue;
|
||||||
for (final String key : DSKeys.KEY_CONN_PROPS) {
|
for (final String key : DSKeys.KEY_CONN_PROPS) {
|
||||||
connValue = poolSetting.get(key);
|
connValue = poolSetting.get(key);
|
||||||
if(StrUtil.isNotBlank(connValue)){
|
if(StrUtil.isNotBlank(connValue)){
|
||||||
dbConfig.addConnProps(key, connValue);
|
pooledDbConfig.addConnProps(key, connValue);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return new PooledDataSource(dbConfig);
|
return new PooledDataSource(pooledDbConfig);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -35,7 +35,7 @@ public class PooledDataSource extends AbstractDataSource {
|
|||||||
private Queue<PooledConnection> freePool;
|
private Queue<PooledConnection> freePool;
|
||||||
private int activeCount; // 活跃连接数
|
private int activeCount; // 活跃连接数
|
||||||
|
|
||||||
private final DbConfig config;
|
private final PooledDbConfig config;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获得一个数据源
|
* 获得一个数据源
|
||||||
@ -88,7 +88,7 @@ public class PooledDataSource extends AbstractDataSource {
|
|||||||
*
|
*
|
||||||
* @param config 数据库配置
|
* @param config 数据库配置
|
||||||
*/
|
*/
|
||||||
public PooledDataSource(final DbConfig config) {
|
public PooledDataSource(final PooledDbConfig config) {
|
||||||
this.config = config;
|
this.config = config;
|
||||||
freePool = new LinkedList<>();
|
freePool = new LinkedList<>();
|
||||||
int initialSize = config.getInitialSize();
|
int initialSize = config.getInitialSize();
|
||||||
@ -136,7 +136,7 @@ public class PooledDataSource extends AbstractDataSource {
|
|||||||
return new PooledConnection(this);
|
return new PooledConnection(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
public DbConfig getConfig() {
|
public PooledDbConfig getConfig() {
|
||||||
return config;
|
return config;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -0,0 +1,77 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2023 looly(loolly@aliyun.com)
|
||||||
|
* Hutool is licensed under Mulan PSL v2.
|
||||||
|
* You can use this software according to the terms and conditions of the Mulan PSL v2.
|
||||||
|
* You may obtain a copy of Mulan PSL v2 at:
|
||||||
|
* https://license.coscl.org.cn/MulanPSL2
|
||||||
|
* THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||||
|
* EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||||
|
* MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||||
|
* See the Mulan PSL v2 for more details.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.dromara.hutool.db.ds.pooled;
|
||||||
|
|
||||||
|
import org.dromara.hutool.db.ds.simple.DbConfig;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 数据库配置
|
||||||
|
*
|
||||||
|
* @author Looly
|
||||||
|
*/
|
||||||
|
public class PooledDbConfig extends DbConfig {
|
||||||
|
|
||||||
|
private int initialSize; //初始连接数
|
||||||
|
private int minIdle; //最小闲置连接数
|
||||||
|
private int maxActive; //最大活跃连接数
|
||||||
|
private long maxWait; //获取连接的超时等待
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 构造
|
||||||
|
*/
|
||||||
|
public PooledDbConfig() {
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 构造
|
||||||
|
*
|
||||||
|
* @param url jdbc url
|
||||||
|
* @param user 用户名
|
||||||
|
* @param pass 密码
|
||||||
|
*/
|
||||||
|
public PooledDbConfig(final String url, final String user, final String pass) {
|
||||||
|
super(url, user, pass);
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getInitialSize() {
|
||||||
|
return initialSize;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setInitialSize(final int initialSize) {
|
||||||
|
this.initialSize = initialSize;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getMinIdle() {
|
||||||
|
return minIdle;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setMinIdle(final int minIdle) {
|
||||||
|
this.minIdle = minIdle;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getMaxActive() {
|
||||||
|
return maxActive;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setMaxActive(final int maxActive) {
|
||||||
|
this.maxActive = maxActive;
|
||||||
|
}
|
||||||
|
|
||||||
|
public long getMaxWait() {
|
||||||
|
return maxWait;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setMaxWait(final long maxWait) {
|
||||||
|
this.maxWait = maxWait;
|
||||||
|
}
|
||||||
|
}
|
@ -10,7 +10,7 @@
|
|||||||
* See the Mulan PSL v2 for more details.
|
* See the Mulan PSL v2 for more details.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.dromara.hutool.db.ds.pooled;
|
package org.dromara.hutool.db.ds.simple;
|
||||||
|
|
||||||
import org.dromara.hutool.db.DbRuntimeException;
|
import org.dromara.hutool.db.DbRuntimeException;
|
||||||
import org.dromara.hutool.db.driver.DriverUtil;
|
import org.dromara.hutool.db.driver.DriverUtil;
|
||||||
@ -24,22 +24,17 @@ import java.util.Properties;
|
|||||||
*/
|
*/
|
||||||
public class DbConfig {
|
public class DbConfig {
|
||||||
|
|
||||||
//-------------------------------------------------------------------- Fields start
|
|
||||||
private String driver; //数据库驱动
|
private String driver; //数据库驱动
|
||||||
private String url; //jdbc url
|
private String url; //jdbc url
|
||||||
private String user; //用户名
|
private String user; //用户名
|
||||||
private String pass; //密码
|
private String pass; //密码
|
||||||
|
|
||||||
private int initialSize; //初始连接数
|
|
||||||
private int minIdle; //最小闲置连接数
|
|
||||||
private int maxActive; //最大活跃连接数
|
|
||||||
private long maxWait; //获取连接的超时等待
|
|
||||||
|
|
||||||
// 连接配置
|
// 连接配置
|
||||||
private Properties connProps;
|
private Properties connProps;
|
||||||
//-------------------------------------------------------------------- Fields end
|
|
||||||
|
|
||||||
//-------------------------------------------------------------------- Constructor start
|
/**
|
||||||
|
* 构造
|
||||||
|
*/
|
||||||
public DbConfig() {
|
public DbConfig() {
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -53,7 +48,6 @@ public class DbConfig {
|
|||||||
public DbConfig(final String url, final String user, final String pass) {
|
public DbConfig(final String url, final String user, final String pass) {
|
||||||
init(url, user, pass);
|
init(url, user, pass);
|
||||||
}
|
}
|
||||||
//-------------------------------------------------------------------- Constructor end
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 初始化
|
* 初始化
|
||||||
@ -74,7 +68,6 @@ public class DbConfig {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//-------------------------------------------------------------------- Getters and Setters start
|
|
||||||
public String getDriver() {
|
public String getDriver() {
|
||||||
return driver;
|
return driver;
|
||||||
}
|
}
|
||||||
@ -107,38 +100,6 @@ public class DbConfig {
|
|||||||
this.pass = pass;
|
this.pass = pass;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getInitialSize() {
|
|
||||||
return initialSize;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setInitialSize(final int initialSize) {
|
|
||||||
this.initialSize = initialSize;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getMinIdle() {
|
|
||||||
return minIdle;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setMinIdle(final int minIdle) {
|
|
||||||
this.minIdle = minIdle;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getMaxActive() {
|
|
||||||
return maxActive;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setMaxActive(final int maxActive) {
|
|
||||||
this.maxActive = maxActive;
|
|
||||||
}
|
|
||||||
|
|
||||||
public long getMaxWait() {
|
|
||||||
return maxWait;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setMaxWait(final long maxWait) {
|
|
||||||
this.maxWait = maxWait;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Properties getConnProps() {
|
public Properties getConnProps() {
|
||||||
return connProps;
|
return connProps;
|
||||||
}
|
}
|
||||||
@ -153,5 +114,4 @@ public class DbConfig {
|
|||||||
}
|
}
|
||||||
this.connProps.setProperty(key, value);
|
this.connProps.setProperty(key, value);
|
||||||
}
|
}
|
||||||
//-------------------------------------------------------------------- Getters and Setters end
|
|
||||||
}
|
}
|
@ -49,13 +49,10 @@ public class SimpleDSFactory extends AbstractDSFactory {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected DataSource createDataSource(final String jdbcUrl, final String driver, final String user, final String pass, final Setting poolSetting) {
|
protected DataSource createDataSource(final String jdbcUrl, final String driver, final String user, final String pass, final Setting poolSetting) {
|
||||||
final SimpleDataSource ds = new SimpleDataSource(//
|
final DbConfig dbConfig = new DbConfig(jdbcUrl, user, pass);
|
||||||
jdbcUrl, //
|
dbConfig.setDriver(driver);
|
||||||
user, //
|
dbConfig.setConnProps(poolSetting.getProps(Setting.DEFAULT_GROUP));
|
||||||
pass, //
|
|
||||||
driver//
|
return new SimpleDataSource(dbConfig);
|
||||||
);
|
|
||||||
ds.setConnProps(poolSetting.getProps(Setting.DEFAULT_GROUP));
|
|
||||||
return ds;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -36,22 +36,14 @@ public class SimpleDataSource extends AbstractDataSource {
|
|||||||
/** 默认的数据库连接配置文件路径 */
|
/** 默认的数据库连接配置文件路径 */
|
||||||
public final static String DEFAULT_DB_CONFIG_PATH = "config/db.setting";
|
public final static String DEFAULT_DB_CONFIG_PATH = "config/db.setting";
|
||||||
|
|
||||||
// -------------------------------------------------------------------- Fields start
|
private final DbConfig config;
|
||||||
private String driver; // 数据库驱动
|
|
||||||
private String url; // jdbc url
|
|
||||||
private String user; // 用户名
|
|
||||||
private String pass; // 密码
|
|
||||||
|
|
||||||
// 连接配置
|
|
||||||
private Properties connProps;
|
|
||||||
// -------------------------------------------------------------------- Fields end
|
|
||||||
|
|
||||||
// -------------------------------------------------------------------- Constructor start
|
// -------------------------------------------------------------------- Constructor start
|
||||||
/**
|
/**
|
||||||
* 构造
|
* 构造
|
||||||
*/
|
*/
|
||||||
public SimpleDataSource() {
|
public SimpleDataSource() {
|
||||||
this(null);
|
this(StrUtil.EMPTY);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -73,150 +65,74 @@ public class SimpleDataSource extends AbstractDataSource {
|
|||||||
if (null == setting) {
|
if (null == setting) {
|
||||||
setting = new Setting(DEFAULT_DB_CONFIG_PATH);
|
setting = new Setting(DEFAULT_DB_CONFIG_PATH);
|
||||||
}
|
}
|
||||||
final Setting config = setting.getSetting(group);
|
final Setting dbSetting = setting.getSetting(group);
|
||||||
if (MapUtil.isEmpty(config)) {
|
if (MapUtil.isEmpty(dbSetting)) {
|
||||||
throw new DbRuntimeException("No DataSource config for group: [{}]", group);
|
throw new DbRuntimeException("No DataSource config for group: [{}]", group);
|
||||||
}
|
}
|
||||||
|
|
||||||
init(//
|
final DbConfig dbConfig = new DbConfig();
|
||||||
config.getAndRemove(DSKeys.KEY_ALIAS_URL), //
|
|
||||||
config.getAndRemove(DSKeys.KEY_ALIAS_USER), //
|
|
||||||
config.getAndRemove(DSKeys.KEY_ALIAS_PASSWORD), //
|
|
||||||
config.getAndRemove(DSKeys.KEY_ALIAS_DRIVER)//
|
|
||||||
);
|
|
||||||
|
|
||||||
// 其它连接参数
|
// 基本信息
|
||||||
this.connProps = config.getProps(Setting.DEFAULT_GROUP);
|
final String url = dbSetting.getAndRemove(DSKeys.KEY_ALIAS_URL);
|
||||||
|
if (StrUtil.isBlank(url)) {
|
||||||
|
throw new DbRuntimeException("No JDBC URL for group: [{}]", group);
|
||||||
|
}
|
||||||
|
dbConfig.setUrl(url);
|
||||||
|
|
||||||
|
// 自动识别Driver
|
||||||
|
final String driver = dbSetting.getAndRemove(DSKeys.KEY_ALIAS_DRIVER);
|
||||||
|
dbConfig.setDriver(StrUtil.isNotBlank(driver) ? driver : DriverUtil.identifyDriver(url));
|
||||||
|
dbConfig.setUser(dbSetting.getAndRemove(DSKeys.KEY_ALIAS_USER));
|
||||||
|
dbConfig.setPass(dbSetting.getAndRemove(DSKeys.KEY_ALIAS_PASSWORD));
|
||||||
|
|
||||||
|
// remarks等特殊配置,since 5.3.8
|
||||||
|
String connValue;
|
||||||
|
for (final String key : DSKeys.KEY_CONN_PROPS) {
|
||||||
|
connValue = dbSetting.get(key);
|
||||||
|
if(StrUtil.isNotBlank(connValue)){
|
||||||
|
dbConfig.addConnProps(key, connValue);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
this.config = dbConfig;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 构造
|
* 构造
|
||||||
*
|
*
|
||||||
* @param url jdbc url
|
* @param config 数据库连接配置
|
||||||
* @param user 用户名
|
|
||||||
* @param pass 密码
|
|
||||||
*/
|
*/
|
||||||
public SimpleDataSource(final String url, final String user, final String pass) {
|
public SimpleDataSource(final DbConfig config) {
|
||||||
init(url, user, pass);
|
this.config = config;
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 构造
|
|
||||||
*
|
|
||||||
* @param url jdbc url
|
|
||||||
* @param user 用户名
|
|
||||||
* @param pass 密码
|
|
||||||
* @param driver JDBC驱动类
|
|
||||||
* @since 3.1.2
|
|
||||||
*/
|
|
||||||
public SimpleDataSource(final String url, final String user, final String pass, final String driver) {
|
|
||||||
init(url, user, pass, driver);
|
|
||||||
}
|
}
|
||||||
// -------------------------------------------------------------------- Constructor end
|
// -------------------------------------------------------------------- Constructor end
|
||||||
|
|
||||||
/**
|
|
||||||
* 初始化
|
|
||||||
*
|
|
||||||
* @param url jdbc url
|
|
||||||
* @param user 用户名
|
|
||||||
* @param pass 密码
|
|
||||||
*/
|
|
||||||
public void init(final String url, final String user, final String pass) {
|
|
||||||
init(url, user, pass, null);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 初始化
|
|
||||||
*
|
|
||||||
* @param url jdbc url
|
|
||||||
* @param user 用户名
|
|
||||||
* @param pass 密码
|
|
||||||
* @param driver JDBC驱动类,传入空则自动识别驱动类
|
|
||||||
* @since 3.1.2
|
|
||||||
*/
|
|
||||||
public void init(final String url, final String user, final String pass, final String driver) {
|
|
||||||
this.driver = StrUtil.isNotBlank(driver) ? driver : DriverUtil.identifyDriver(url);
|
|
||||||
try {
|
|
||||||
Class.forName(this.driver);
|
|
||||||
} catch (final ClassNotFoundException e) {
|
|
||||||
throw new DbRuntimeException(e, "Get jdbc driver [{}] error!", driver);
|
|
||||||
}
|
|
||||||
this.url = url;
|
|
||||||
this.user = user;
|
|
||||||
this.pass = pass;
|
|
||||||
}
|
|
||||||
|
|
||||||
// -------------------------------------------------------------------- Getters and Setters start
|
|
||||||
public String getDriver() {
|
|
||||||
return driver;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDriver(final String driver) {
|
|
||||||
this.driver = driver;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getUrl() {
|
|
||||||
return url;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setUrl(final String url) {
|
|
||||||
this.url = url;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getUser() {
|
|
||||||
return user;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setUser(final String user) {
|
|
||||||
this.user = user;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getPass() {
|
|
||||||
return pass;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setPass(final String pass) {
|
|
||||||
this.pass = pass;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Properties getConnProps() {
|
|
||||||
return connProps;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setConnProps(final Properties connProps) {
|
|
||||||
this.connProps = connProps;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void addConnProps(final String key, final String value){
|
|
||||||
if(null == this.connProps){
|
|
||||||
this.connProps = new Properties();
|
|
||||||
}
|
|
||||||
this.connProps.setProperty(key, value);
|
|
||||||
}
|
|
||||||
// -------------------------------------------------------------------- Getters and Setters end
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Connection getConnection() throws SQLException {
|
public Connection getConnection() throws SQLException {
|
||||||
|
final DbConfig config = this.config;
|
||||||
final Props info = new Props();
|
final Props info = new Props();
|
||||||
if (this.user != null) {
|
|
||||||
info.setProperty("user", this.user);
|
final String user = config.getUser();
|
||||||
|
if (user != null) {
|
||||||
|
info.setProperty("user", user);
|
||||||
}
|
}
|
||||||
if (this.pass != null) {
|
final String pass = config.getPass();
|
||||||
info.setProperty("password", this.pass);
|
if (pass != null) {
|
||||||
|
info.setProperty("password", pass);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 其它参数
|
// 其它参数
|
||||||
final Properties connProps = this.connProps;
|
final Properties connProps = config.getConnProps();
|
||||||
if(MapUtil.isNotEmpty(connProps)){
|
if(MapUtil.isNotEmpty(connProps)){
|
||||||
info.putAll(connProps);
|
info.putAll(connProps);
|
||||||
}
|
}
|
||||||
|
|
||||||
return DriverManager.getConnection(this.url, info);
|
return DriverManager.getConnection(config.getUrl(), info);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Connection getConnection(final String username, final String password) throws SQLException {
|
public Connection getConnection(final String username, final String password) throws SQLException {
|
||||||
return DriverManager.getConnection(this.url, username, password);
|
return DriverManager.getConnection(config.getUrl(), username, password);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
Loading…
x
Reference in New Issue
Block a user