AE86 vor 5 Jahren
Ursprung
Commit
58fec3a2c1

+ 4 - 2
dbsyncer-connector/src/main/java/org/dbsyncer/connector/Connector.java

@@ -1,7 +1,9 @@
 package org.dbsyncer.connector;
 
+import org.dbsyncer.common.task.Result;
 import org.dbsyncer.connector.config.CommandConfig;
 import org.dbsyncer.connector.config.ConnectorConfig;
+import org.dbsyncer.connector.config.Field;
 import org.dbsyncer.connector.config.MetaInfo;
 
 import java.util.List;
@@ -66,7 +68,7 @@ public interface Connector {
      * @param pageSize 页大小
      * @return
      */
-    //Result reader(ConnectorConfig config, Map<String, String> command, int pageIndex, int pageSize);
+    Result reader(ConnectorConfig config, Map<String, String> command, int pageIndex, int pageSize);
 
     /**
      * 批量写入目标源数据
@@ -77,6 +79,6 @@ public interface Connector {
      * @param data 数据
      * @return
      */
-    //Result writer(ConnectorConfig config, Map<String, String> command, int threadSize, List<Map<String, Object>> data);
+    Result writer(ConnectorConfig config, Map<String, String> command, int threadSize, List<Field> fields, List<Map<String, Object>> data);
 
 }

+ 11 - 5
dbsyncer-connector/src/main/java/org/dbsyncer/connector/ConnectorFactory.java

@@ -1,11 +1,11 @@
 package org.dbsyncer.connector;
 
 import org.dbsyncer.common.task.Result;
+import org.dbsyncer.connector.config.CommandConfig;
 import org.dbsyncer.connector.config.ConnectorConfig;
 import org.dbsyncer.connector.config.Field;
 import org.dbsyncer.connector.config.MetaInfo;
 import org.dbsyncer.connector.enums.ConnectorEnum;
-import org.dbsyncer.connector.config.CommandConfig;
 import org.springframework.util.Assert;
 
 import java.util.HashMap;
@@ -74,12 +74,18 @@ public class ConnectorFactory {
         return map;
     }
 
-    public Result reader(ConnectorConfig config, Map<String, String> command, int pageIndex, int pageSize){
-        return new Result();
+    public Result reader(ConnectorConfig config, Map<String, String> command, int pageIndex, int pageSize) {
+        Connector connector = getConnector(config.getConnectorType());
+        Result result = connector.reader(config, command, pageIndex, pageSize);
+        Assert.notNull(result, "Connector reader result can not null");
+        return result;
     }
 
-    public Result writer(ConnectorConfig config, Map<String,String> command, int threadSize, List<Field> fields, List<Map<String,Object>> data) {
-        return new Result();
+    public Result writer(ConnectorConfig config, Map<String, String> command, int threadSize, List<Field> fields, List<Map<String, Object>> data) {
+        Connector connector = getConnector(config.getConnectorType());
+        Result result = connector.writer(config, command, threadSize, fields, data);
+        Assert.notNull(result, "Connector writer result can not null");
+        return result;
     }
 
     /**

+ 20 - 0
dbsyncer-connector/src/main/java/org/dbsyncer/connector/database/AbstractDatabaseConnector.java

@@ -1,6 +1,7 @@
 package org.dbsyncer.connector.database;
 
 import org.apache.commons.lang.StringUtils;
+import org.dbsyncer.common.task.Result;
 import org.dbsyncer.common.util.CollectionUtils;
 import org.dbsyncer.connector.ConnectorException;
 import org.dbsyncer.connector.config.*;
@@ -116,6 +117,25 @@ public abstract class AbstractDatabaseConnector implements Database {
         return map;
     }
 
+    @Override
+    public Result reader(ConnectorConfig config, Map<String, String> command, int pageIndex, int pageSize) {
+        // TODO 实现读取
+        // 1、获取连接
+        // 2、获取select SQL
+        // 3、设置参数
+        return null;
+    }
+
+    @Override
+    public Result writer(ConnectorConfig config, Map<String, String> command, int threadSize, List<Field> fields, List<Map<String, Object>> data) {
+        // TODO 实现批量写入
+        // 1、获取连接
+        // 2、获取insert SQL
+        // 3、设置参数
+        // 4、记录失败数量和异常信息
+        return null;
+    }
+
     @Override
     public JdbcTemplate getJdbcTemplate(DatabaseConfig config) {
         return DatabaseUtil.getJdbcTemplate(config);

+ 14 - 6
dbsyncer-connector/src/main/java/org/dbsyncer/connector/ldap/LdapConnector.java

@@ -1,10 +1,8 @@
 package org.dbsyncer.connector.ldap;
 
 import org.apache.commons.lang.StringUtils;
-import org.dbsyncer.connector.config.CommandConfig;
-import org.dbsyncer.connector.config.ConnectorConfig;
-import org.dbsyncer.connector.config.LdapConfig;
-import org.dbsyncer.connector.config.MetaInfo;
+import org.dbsyncer.common.task.Result;
+import org.dbsyncer.connector.config.*;
 import org.dbsyncer.connector.constant.ConnectorConstant;
 import org.dbsyncer.connector.util.LdapUtil;
 import org.slf4j.Logger;
@@ -14,6 +12,7 @@ import org.springframework.ldap.CommunicationException;
 import org.springframework.ldap.core.DirContextAdapter;
 import org.springframework.ldap.core.LdapTemplate;
 import org.springframework.ldap.filter.*;
+import org.springframework.ldap.filter.Filter;
 
 import java.util.List;
 import java.util.Map;
@@ -55,8 +54,17 @@ public final class LdapConnector implements Ldap {
 	}
 
 	@Override
-	public LdapTemplate getLdapTemplate(LdapConfig config)
-			throws AuthenticationException, CommunicationException, javax.naming.NamingException {
+	public Result reader(ConnectorConfig config, Map<String, String> command, int pageIndex, int pageSize) {
+		return null;
+	}
+
+	@Override
+	public Result writer(ConnectorConfig config, Map<String, String> command, int threadSize, List<Field> fields, List<Map<String, Object>> data) {
+		return null;
+	}
+
+	@Override
+	public LdapTemplate getLdapTemplate(LdapConfig config) throws AuthenticationException, CommunicationException, javax.naming.NamingException {
 		return LdapUtil.getLdapTemplate(config);
 	}
 

+ 12 - 4
dbsyncer-connector/src/main/java/org/dbsyncer/connector/redis/RedisConnector.java

@@ -1,10 +1,8 @@
 package org.dbsyncer.connector.redis;
 
 import org.apache.commons.lang.StringUtils;
-import org.dbsyncer.connector.config.CommandConfig;
-import org.dbsyncer.connector.config.ConnectorConfig;
-import org.dbsyncer.connector.config.MetaInfo;
-import org.dbsyncer.connector.config.RedisConfig;
+import org.dbsyncer.common.task.Result;
+import org.dbsyncer.connector.config.*;
 import org.dbsyncer.connector.util.RedisUtil;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -59,6 +57,16 @@ public final class RedisConnector implements Redis {
         return null;
     }
 
+    @Override
+    public Result reader(ConnectorConfig config, Map<String, String> command, int pageIndex, int pageSize) {
+        return null;
+    }
+
+    @Override
+    public Result writer(ConnectorConfig config, Map<String, String> command, int threadSize, List<Field> fields, List<Map<String, Object>> data) {
+        return null;
+    }
+
     @Override
     public RedisTemplate getRedisTemplate(RedisConfig config) {
         return this.getRedisTemplate(config, null, null, null);