Quellcode durchsuchen

!221 feat:增加对sql sever DateTimeOffset 类型和对 short 类型的支持。
Merge pull request !221 from 张宗彬/v_2.0

AE86 vor 1 Jahr
Ursprung
Commit
a5318b674e

+ 6 - 0
dbsyncer-sdk/pom.xml

@@ -38,5 +38,11 @@
             <scope>provided</scope>
         </dependency>
 
+        <!-- sqlserver -->
+        <dependency>
+            <groupId>com.microsoft.sqlserver</groupId>
+            <artifactId>mssql-jdbc</artifactId>
+        </dependency>
+
     </dependencies>
 </project>

+ 5 - 0
dbsyncer-sdk/src/main/java/org/dbsyncer/sdk/connector/schema/IntegerValueMapper.java

@@ -35,6 +35,11 @@ public class IntegerValueMapper extends AbstractValueMapper<Integer> {
             return new Integer(b ? 1 : 0);
         }
 
+        if (val instanceof Short) {
+            Short s = (Short) val;
+            return s.intValue();
+        }
+
         throw new SdkException(String.format("%s can not find type [%s], val [%s]", getClass().getSimpleName(), val.getClass(), val));
     }
 }

+ 6 - 0
dbsyncer-sdk/src/main/java/org/dbsyncer/sdk/connector/schema/TimestampValueMapper.java

@@ -1,5 +1,6 @@
 package org.dbsyncer.sdk.connector.schema;
 
+import microsoft.sql.DateTimeOffset;
 import org.dbsyncer.common.util.DateFormatUtil;
 import org.dbsyncer.sdk.SdkException;
 import org.dbsyncer.sdk.connector.AbstractValueMapper;
@@ -62,6 +63,11 @@ public class TimestampValueMapper extends AbstractValueMapper<Timestamp> {
             return Timestamp.from(date.toInstant());
         }
 
+        if (val instanceof microsoft.sql.DateTimeOffset) {
+            LocalDateTime dateTime = ((DateTimeOffset) val).getOffsetDateTime().toLocalDateTime();
+            return Timestamp.valueOf(dateTime);
+        }
+
         throw new SdkException(String.format("%s can not find type [%s], val [%s]", getClass().getSimpleName(), val.getClass(), val));
     }
 }