精简XXXTypeGetter

This commit is contained in:
Looly
2022-09-22 02:31:28 +08:00
parent b13329d781
commit f2629f775b
39 changed files with 969 additions and 1841 deletions

View File

@@ -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);
}
/**

View File

@@ -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);
}

View File

@@ -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);
}

View File

@@ -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);
}

View File

@@ -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);
}

View File

@@ -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);
}

View File

@@ -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);
}

View File

@@ -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;

View File

@@ -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)//
);
// 其它连接参数

View File

@@ -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);
}