Sfoglia il codice sorgente

支持Number转BigDecimal

AE86 1 anno fa
parent
commit
39f14868a1

+ 2 - 20
dbsyncer-sdk/src/main/java/org/dbsyncer/sdk/connector/schema/DecimalValueMapper.java

@@ -5,7 +5,6 @@ import org.dbsyncer.sdk.connector.AbstractValueMapper;
 import org.dbsyncer.sdk.connector.ConnectorInstance;
 
 import java.math.BigDecimal;
-import java.math.BigInteger;
 
 /**
  * @author AE86
@@ -16,25 +15,8 @@ public class DecimalValueMapper extends AbstractValueMapper<BigDecimal> {
 
     @Override
     protected BigDecimal convert(ConnectorInstance connectorInstance, Object val) {
-        if (val instanceof Integer) {
-            Integer integer = (Integer) val;
-            return new BigDecimal(integer);
-        }
-        if (val instanceof Long) {
-            Long l = (Long) val;
-            return new BigDecimal(l);
-        }
-        if (val instanceof BigInteger) {
-            BigInteger bigInteger = (BigInteger) val;
-            return new BigDecimal(bigInteger);
-        }
-        if (val instanceof Short) {
-            Short s = (Short) val;
-            return new BigDecimal(s);
-        }
-        if (val instanceof Float) {
-            Float f = (Float) val;
-            return new BigDecimal(Float.toString(f));
+        if (val instanceof Number) {
+            return new BigDecimal(val.toString());
         }
         if (val instanceof Boolean) {
             Boolean b = (Boolean) val;

+ 2 - 12
dbsyncer-sdk/src/main/java/org/dbsyncer/sdk/connector/schema/NumberValueMapper.java

@@ -5,7 +5,6 @@ import org.dbsyncer.sdk.connector.AbstractValueMapper;
 import org.dbsyncer.sdk.connector.ConnectorInstance;
 
 import java.math.BigDecimal;
-import java.math.BigInteger;
 
 /**
  * @author AE86
@@ -16,17 +15,8 @@ public class NumberValueMapper extends AbstractValueMapper<BigDecimal> {
 
     @Override
     protected BigDecimal convert(ConnectorInstance connectorInstance, Object val) {
-        if (val instanceof Integer) {
-            Integer integer = (Integer) val;
-            return new BigDecimal(integer);
-        }
-        if (val instanceof Long) {
-            Long l = (Long) val;
-            return new BigDecimal(l);
-        }
-        if (val instanceof BigInteger) {
-            BigInteger b = (BigInteger) val;
-            return new BigDecimal(b);
+        if (val instanceof Number) {
+            return new BigDecimal(val.toString());
         }
 
         throw new SdkException(String.format("%s can not find type [%s], val [%s]", getClass().getSimpleName(), val.getClass(), val));