mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-07-21 15:09:48 +08:00
精简XXXTypeGetter
This commit is contained in:
@@ -8,6 +8,7 @@ import cn.hutool.core.reflect.MethodUtil;
|
||||
import cn.hutool.core.text.StrUtil;
|
||||
import cn.hutool.core.util.ArrayUtil;
|
||||
import cn.hutool.core.util.CharsetUtil;
|
||||
import cn.hutool.core.util.ObjUtil;
|
||||
import cn.hutool.db.sql.SqlUtil;
|
||||
|
||||
import java.nio.charset.Charset;
|
||||
@@ -273,28 +274,28 @@ public class Entity extends Dict {
|
||||
// -------------------------------------------------------------------- Get start
|
||||
|
||||
/**
|
||||
* 获得Clob类型结果
|
||||
* 获得Clob类型结果,如果结果类型非Clob,不做转换,直接抛出异常
|
||||
*
|
||||
* @param field 参数
|
||||
* @return Clob
|
||||
*/
|
||||
public Clob getClob(final String field) {
|
||||
return get(field, null);
|
||||
return (Clob) get(field);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获得Blob类型结果
|
||||
* 获得Blob类型结果,如果结果类型非Blob,不做转换,直接抛出异常
|
||||
*
|
||||
* @param field 参数
|
||||
* @return Blob
|
||||
* @since 3.0.6
|
||||
*/
|
||||
public Blob getBlob(final String field) {
|
||||
return get(field, null);
|
||||
return (Blob) get(field);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Time getTime(final String field) {
|
||||
public Time getSqlTime(final String field, final Time defaultValue) {
|
||||
final Object obj = get(field);
|
||||
Time result = null;
|
||||
if (null != obj) {
|
||||
@@ -305,11 +306,11 @@ public class Entity extends Dict {
|
||||
result = MethodUtil.invoke(obj, "timeValue");
|
||||
}
|
||||
}
|
||||
return result;
|
||||
return ObjUtil.defaultIfNull(result, defaultValue);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Date getDate(final String field) {
|
||||
public Date getDate(final String field, final Date defaultValue) {
|
||||
final Object obj = get(field);
|
||||
Date result = null;
|
||||
if (null != obj) {
|
||||
@@ -320,11 +321,11 @@ public class Entity extends Dict {
|
||||
result = MethodUtil.invoke(obj, "dateValue");
|
||||
}
|
||||
}
|
||||
return result;
|
||||
return ObjUtil.defaultIfNull(result, defaultValue);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Timestamp getTimestamp(final String field) {
|
||||
public Timestamp getSqlTimestamp(final String field, final Timestamp defaultValue) {
|
||||
final Object obj = get(field);
|
||||
Timestamp result = null;
|
||||
if (null != obj) {
|
||||
@@ -335,12 +336,12 @@ public class Entity extends Dict {
|
||||
result = MethodUtil.invoke(obj, "timestampValue");
|
||||
}
|
||||
}
|
||||
return result;
|
||||
return ObjUtil.defaultIfNull(result, defaultValue);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getStr(final String field) {
|
||||
return getStr(field, CharsetUtil.UTF_8);
|
||||
public String getStr(final String field, final String defaultValue) {
|
||||
return getStr(field, CharsetUtil.UTF_8, defaultValue);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -350,10 +351,9 @@ public class Entity extends Dict {
|
||||
* @param field 字段名
|
||||
* @param charset 编码
|
||||
* @return 字段对应值
|
||||
* @since 3.0.6
|
||||
*/
|
||||
public String getStr(final String field, final Charset charset) {
|
||||
final Object obj = get(field);
|
||||
public String getStr(final String field, final Charset charset, final String defaultValue) {
|
||||
final Object obj = getObj(field, defaultValue);
|
||||
if (obj instanceof Clob) {
|
||||
return SqlUtil.clobToStr((Clob) obj);
|
||||
} else if (obj instanceof Blob) {
|
||||
@@ -362,7 +362,7 @@ public class Entity extends Dict {
|
||||
final RowId rowId = (RowId) obj;
|
||||
return StrUtil.str(rowId.getBytes(), charset);
|
||||
}
|
||||
return super.getStr(field);
|
||||
return super.getStr(field, defaultValue);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -102,7 +102,7 @@ public abstract class AbstractDSFactory extends DSFactory {
|
||||
}
|
||||
|
||||
// 基本信息
|
||||
final String url = config.getAndRemoveStr(KEY_ALIAS_URL);
|
||||
final String url = config.getAndRemove(KEY_ALIAS_URL);
|
||||
if (StrUtil.isBlank(url)) {
|
||||
throw new DbRuntimeException("No JDBC URL for group: [{}]", group);
|
||||
}
|
||||
@@ -112,12 +112,12 @@ public abstract class AbstractDSFactory extends DSFactory {
|
||||
DbUtil.removeShowSqlParams(config);
|
||||
|
||||
// 自动识别Driver
|
||||
String driver = config.getAndRemoveStr(KEY_ALIAS_DRIVER);
|
||||
String driver = config.getAndRemove(KEY_ALIAS_DRIVER);
|
||||
if (StrUtil.isBlank(driver)) {
|
||||
driver = DriverUtil.identifyDriver(url);
|
||||
}
|
||||
final String user = config.getAndRemoveStr(KEY_ALIAS_USER);
|
||||
final String pass = config.getAndRemoveStr(KEY_ALIAS_PASSWORD);
|
||||
final String user = config.getAndRemove(KEY_ALIAS_USER);
|
||||
final String pass = config.getAndRemove(KEY_ALIAS_PASSWORD);
|
||||
|
||||
return DataSourceWrapper.wrap(createDataSource(url, driver, user, pass, config), driver);
|
||||
}
|
||||
|
@@ -36,7 +36,7 @@ public class BeeDSFactory extends AbstractDSFactory {
|
||||
// remarks等特殊配置,since 5.3.8
|
||||
String connValue;
|
||||
for (final String key : KEY_CONN_PROPS) {
|
||||
connValue = poolSetting.getAndRemoveStr(key);
|
||||
connValue = poolSetting.getAndRemove(key);
|
||||
if(StrUtil.isNotBlank(connValue)){
|
||||
beeConfig.addConnectProperty(key, connValue);
|
||||
}
|
||||
|
@@ -46,7 +46,7 @@ public class C3p0DSFactory extends AbstractDSFactory {
|
||||
final Props connProps = new Props();
|
||||
String connValue;
|
||||
for (final String key : KEY_CONN_PROPS) {
|
||||
connValue = poolSetting.getAndRemoveStr(key);
|
||||
connValue = poolSetting.getAndRemove(key);
|
||||
if(StrUtil.isNotBlank(connValue)){
|
||||
connProps.setProperty(key, connValue);
|
||||
}
|
||||
|
@@ -38,7 +38,7 @@ public class DbcpDSFactory extends AbstractDSFactory {
|
||||
// remarks等特殊配置,since 5.3.8
|
||||
String connValue;
|
||||
for (final String key : KEY_CONN_PROPS) {
|
||||
connValue = poolSetting.getAndRemoveStr(key);
|
||||
connValue = poolSetting.getAndRemove(key);
|
||||
if(StrUtil.isNotBlank(connValue)){
|
||||
ds.addConnectionProperty(key, connValue);
|
||||
}
|
||||
|
@@ -49,7 +49,7 @@ public class DruidDSFactory extends AbstractDSFactory {
|
||||
// Druid中也可以通过 druid.connectProperties 属性设置
|
||||
String connValue;
|
||||
for (final String key : KEY_CONN_PROPS) {
|
||||
connValue = poolSetting.getAndRemoveStr(key);
|
||||
connValue = poolSetting.getAndRemove(key);
|
||||
if(StrUtil.isNotBlank(connValue)){
|
||||
ds.addConnectionProperty(key, connValue);
|
||||
}
|
||||
|
@@ -34,7 +34,7 @@ public class HikariDSFactory extends AbstractDSFactory {
|
||||
final Props connProps = new Props();
|
||||
String connValue;
|
||||
for (final String key : KEY_CONN_PROPS) {
|
||||
connValue = poolSetting.getAndRemoveStr(key);
|
||||
connValue = poolSetting.getAndRemove(key);
|
||||
if(StrUtil.isNotBlank(connValue)){
|
||||
connProps.setProperty(key, connValue);
|
||||
}
|
||||
|
@@ -54,22 +54,22 @@ public class DbSetting {
|
||||
final DbConfig dbConfig = new DbConfig();
|
||||
|
||||
// 基本信息
|
||||
final String url = config.getAndRemoveStr(DSFactory.KEY_ALIAS_URL);
|
||||
final String url = config.getAndRemove(DSFactory.KEY_ALIAS_URL);
|
||||
if (StrUtil.isBlank(url)) {
|
||||
throw new DbRuntimeException("No JDBC URL for group: [{}]", group);
|
||||
}
|
||||
dbConfig.setUrl(url);
|
||||
// 自动识别Driver
|
||||
final String driver = config.getAndRemoveStr(DSFactory.KEY_ALIAS_DRIVER);
|
||||
final String driver = config.getAndRemove(DSFactory.KEY_ALIAS_DRIVER);
|
||||
dbConfig.setDriver(StrUtil.isNotBlank(driver) ? driver : DriverUtil.identifyDriver(url));
|
||||
dbConfig.setUser(config.getAndRemoveStr(DSFactory.KEY_ALIAS_USER));
|
||||
dbConfig.setPass(config.getAndRemoveStr(DSFactory.KEY_ALIAS_PASSWORD));
|
||||
dbConfig.setUser(config.getAndRemove(DSFactory.KEY_ALIAS_USER));
|
||||
dbConfig.setPass(config.getAndRemove(DSFactory.KEY_ALIAS_PASSWORD));
|
||||
|
||||
// 连接池相关信息
|
||||
dbConfig.setInitialSize(setting.getInt("initialSize", group, 0));
|
||||
dbConfig.setMinIdle(setting.getInt("minIdle", group, 0));
|
||||
dbConfig.setMaxActive(setting.getInt("maxActive", group, 8));
|
||||
dbConfig.setMaxWait(setting.getLong("maxWait", group, 6000L));
|
||||
dbConfig.setInitialSize(setting.getIntByGroup("initialSize", group, 0));
|
||||
dbConfig.setMinIdle(setting.getIntByGroup("minIdle", group, 0));
|
||||
dbConfig.setMaxActive(setting.getIntByGroup("maxActive", group, 8));
|
||||
dbConfig.setMaxWait(setting.getLongByGroup("maxWait", group, 6000L));
|
||||
|
||||
// remarks等特殊配置,since 5.3.8
|
||||
String connValue;
|
||||
|
@@ -86,10 +86,10 @@ public class SimpleDataSource extends AbstractDataSource {
|
||||
}
|
||||
|
||||
init(//
|
||||
config.getAndRemoveStr(DSFactory.KEY_ALIAS_URL), //
|
||||
config.getAndRemoveStr(DSFactory.KEY_ALIAS_USER), //
|
||||
config.getAndRemoveStr(DSFactory.KEY_ALIAS_PASSWORD), //
|
||||
config.getAndRemoveStr(DSFactory.KEY_ALIAS_DRIVER)//
|
||||
config.getAndRemove(DSFactory.KEY_ALIAS_URL), //
|
||||
config.getAndRemove(DSFactory.KEY_ALIAS_USER), //
|
||||
config.getAndRemove(DSFactory.KEY_ALIAS_PASSWORD), //
|
||||
config.getAndRemove(DSFactory.KEY_ALIAS_DRIVER)//
|
||||
);
|
||||
|
||||
// 其它连接参数
|
||||
|
@@ -46,7 +46,7 @@ public class TomcatDSFactory extends AbstractDSFactory {
|
||||
final Props connProps = new Props();
|
||||
String connValue;
|
||||
for (final String key : KEY_CONN_PROPS) {
|
||||
connValue = poolSetting.getAndRemoveStr(key);
|
||||
connValue = poolSetting.getAndRemove(key);
|
||||
if(StrUtil.isNotBlank(connValue)){
|
||||
connProps.setProperty(key, connValue);
|
||||
}
|
||||
|
Reference in New Issue
Block a user