浏览代码

简化代码

AE86 2 年之前
父节点
当前提交
c887d1c592

+ 4 - 5
dbsyncer-connector/pom.xml

@@ -35,11 +35,6 @@
             <groupId>com.oracle</groupId>
             <artifactId>ojdbc6</artifactId>
         </dependency>
-        <dependency>
-            <groupId>net.postgis</groupId>
-            <artifactId>postgis-jdbc</artifactId>
-            <version>2.5.1</version>
-        </dependency>
         <dependency>
             <groupId>oracle</groupId>
             <artifactId>sdoapi</artifactId>
@@ -61,6 +56,10 @@
             <groupId>org.postgresql</groupId>
             <artifactId>postgresql</artifactId>
         </dependency>
+        <dependency>
+            <groupId>net.postgis</groupId>
+            <artifactId>postgis-jdbc</artifactId>
+        </dependency>
 
         <!-- smartcn中文分词器 -->
         <dependency>

+ 1 - 2
dbsyncer-connector/src/main/java/org/dbsyncer/connector/postgresql/PostgreSQLConnector.java

@@ -8,14 +8,13 @@ import org.dbsyncer.connector.database.AbstractDatabaseConnector;
 import org.dbsyncer.connector.enums.TableTypeEnum;
 import org.dbsyncer.connector.model.PageSql;
 import org.dbsyncer.connector.model.Table;
-import org.dbsyncer.connector.schema.PGOtherValueMapper;
 
 import java.sql.Types;
 
 public final class PostgreSQLConnector extends AbstractDatabaseConnector {
 
     static {
-        valueMappers.put(Types.OTHER, new PGOtherValueMapper());
+        valueMappers.put(Types.OTHER, new PostgreSQLOtherValueMapper());
     }
 
     @Override

+ 5 - 5
dbsyncer-connector/src/main/java/org/dbsyncer/connector/schema/PGOtherValueMapper.java → dbsyncer-connector/src/main/java/org/dbsyncer/connector/postgresql/PostgreSQLOtherValueMapper.java

@@ -1,4 +1,4 @@
-package org.dbsyncer.connector.schema;
+package org.dbsyncer.connector.postgresql;
 
 import org.dbsyncer.common.spi.ConnectorMapper;
 import org.dbsyncer.connector.AbstractValueMapper;
@@ -9,7 +9,7 @@ import org.postgis.binary.BinaryParser;
 import org.postgis.binary.BinaryWriter;
 
 /**
- * PostgreSQL值映射器,JDBC索引{@link java.sql.Types 1111}, JDBC类型java.lang.Object,支持的数据库类型:
+ * JDBC索引{@link java.sql.Types 1111}, JDBC类型java.lang.Object,支持的数据库类型:
  * <ol>
  * <li>cidr</li>
  * <li>inet</li>
@@ -27,9 +27,9 @@ import org.postgis.binary.BinaryWriter;
  *
  * @author AE86
  * @version 1.0.0
- * @date 2022/8/24 23:43
+ * @date 2022/12/22 22:59
  */
-public class PGOtherValueMapper extends AbstractValueMapper<Object> {
+public class PostgreSQLOtherValueMapper extends AbstractValueMapper<Object> {
 
     @Override
     protected boolean skipConvert(Object val) {
@@ -41,7 +41,7 @@ public class PGOtherValueMapper extends AbstractValueMapper<Object> {
         if (val instanceof String) {
             try {
                 BinaryParser parser = new BinaryParser();
-                org.postgis.Geometry geo = parser.parse((String) val);
+                Geometry geo = parser.parse((String) val);
                 BinaryWriter bw = new BinaryWriter();
                 return bw.writeBinary(geo);
             } catch (Exception ex) {

+ 0 - 28
dbsyncer-connector/src/main/java/org/dbsyncer/connector/schema/GeometryValueMapper.java

@@ -1,28 +0,0 @@
-package org.dbsyncer.connector.schema;
-
-import com.microsoft.sqlserver.jdbc.Geometry;
-import com.microsoft.sqlserver.jdbc.SQLServerException;
-import org.dbsyncer.common.spi.ConnectorMapper;
-import org.dbsyncer.connector.AbstractValueMapper;
-import org.dbsyncer.connector.ConnectorException;
-
-/**
- * @author AE86
- * @version 1.0.0
- * @date 2022/8/24 23:43
- */
-public class GeometryValueMapper extends AbstractValueMapper<Geometry> {
-
-    @Override
-    protected Object getDefaultVal(Object val) throws SQLServerException {
-        return null != val ? val : Geometry.point(0, 0, 0);
-    }
-
-    @Override
-    protected Geometry convert(ConnectorMapper connectorMapper, Object val) throws SQLServerException {
-        if (val instanceof byte[]) {
-            return Geometry.deserialize((byte[]) val);
-        }
-        throw new ConnectorException(String.format("%s can not find type [%s], val [%s]", getClass().getSimpleName(), val.getClass(), val));
-    }
-}

+ 1 - 7
dbsyncer-connector/src/main/java/org/dbsyncer/connector/sqlserver/SqlServerConnector.java

@@ -11,9 +11,7 @@ import org.dbsyncer.connector.database.DatabaseConnectorMapper;
 import org.dbsyncer.connector.enums.TableTypeEnum;
 import org.dbsyncer.connector.model.PageSql;
 import org.dbsyncer.connector.model.Table;
-import org.dbsyncer.connector.schema.GeometryValueMapper;
 
-import java.sql.Types;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.stream.Collectors;
@@ -24,10 +22,6 @@ public final class SqlServerConnector extends AbstractDatabaseConnector {
 
     private static final String QUERY_TABLE = "select name from sys.tables where schema_id = schema_id('%s') and is_ms_shipped = 0";
 
-    static {
-        valueMappers.put(Types.VARBINARY, new GeometryValueMapper());
-    }
-
     @Override
     public List<Table> getTable(DatabaseConnectorMapper connectorMapper) {
         DatabaseConfig config = connectorMapper.getConfig();
@@ -45,7 +39,7 @@ public final class SqlServerConnector extends AbstractDatabaseConnector {
     public Object[] getPageArgs(ReaderConfig config) {
         int pageSize = config.getPageSize();
         int pageIndex = config.getPageIndex();
-        return new Object[] {(pageIndex - 1) * pageSize + 1, pageIndex * pageSize};
+        return new Object[]{(pageIndex - 1) * pageSize + 1, pageIndex * pageSize};
     }
 
     @Override

+ 11 - 2
pom.xml

@@ -42,11 +42,14 @@
         <commons-io.version>2.5</commons-io.version>
         <lucene-analyzers-smartcn.version>7.7.0</lucene-analyzers-smartcn.version>
         <ojdbc6.version>11.2.0.4.0-atlassian-hosted</ojdbc6.version>
+        <sdoapi.version>11.2.0</sdoapi.version>
         <!--<mysql.version>5.1.40</mysql.version>-->
         <mysql.version>8.0.21</mysql.version>
         <mysql-binlog.version>0.21.0</mysql-binlog.version>
         <mssql-jdbc.version>7.4.1.jre8</mssql-jdbc.version>
+        <antlr4-runtime.version>4.7.2</antlr4-runtime.version>
         <postgresql.version>42.3.3</postgresql.version>
+        <postgis-jdbc.version>2.5.1</postgis-jdbc.version>
         <kafka.version>0.9.0.0</kafka.version>
         <fastjson.version>1.2.75</fastjson.version>
         <protobuf.version>3.21.1</protobuf.version>
@@ -151,7 +154,7 @@
             <dependency>
                 <groupId>oracle</groupId>
                 <artifactId>sdoapi</artifactId>
-                <version>11.2.0</version>
+                <version>${sdoapi.version}</version>
             </dependency>
 
             <!-- sqlserver-driver -->
@@ -165,7 +168,7 @@
             <dependency>
                 <groupId>org.antlr</groupId>
                 <artifactId>antlr4-runtime</artifactId>
-                <version>4.7.2</version>
+                <version>${antlr4-runtime.version}</version>
             </dependency>
 
             <!-- postgresql -->
@@ -175,6 +178,12 @@
                 <version>${postgresql.version}</version>
             </dependency>
 
+            <dependency>
+                <groupId>net.postgis</groupId>
+                <artifactId>postgis-jdbc</artifactId>
+                <version>${postgis-jdbc.version}</version>
+            </dependency>
+
             <dependency>
                 <groupId>com.github.shyiko</groupId>
                 <artifactId>mysql-binlog-connector-java</artifactId>