AE86 před 5 roky
rodič
revize
d744be5264

+ 1 - 1
dbsyncer-biz/src/main/java/org/dbsyncer/biz/checker/impl/connector/ConnectorChecker.java

@@ -110,7 +110,7 @@ public class ConnectorChecker extends AbstractChecker implements ApplicationCont
     private void setTable(Connector connector) {
     private void setTable(Connector connector) {
         // 获取表信息
         // 获取表信息
         boolean alive = manager.alive(connector.getConfig());
         boolean alive = manager.alive(connector.getConfig());
-        Assert.isTrue(alive, "无法连接,请检查配置.");
+        Assert.isTrue(alive, "无法连接.");
         List<String> table = manager.getTable(connector.getConfig());
         List<String> table = manager.getTable(connector.getConfig());
         connector.setTable(table);
         connector.setTable(table);
     }
     }

+ 32 - 0
dbsyncer-biz/src/main/java/org/dbsyncer/biz/checker/impl/mapping/DqlOracleLogConfigChecker.java

@@ -0,0 +1,32 @@
+package org.dbsyncer.biz.checker.impl.mapping;
+
+import org.dbsyncer.biz.checker.MappingLogConfigChecker;
+import org.dbsyncer.listener.config.ListenerConfig;
+import org.dbsyncer.parser.model.Mapping;
+import org.springframework.stereotype.Component;
+import org.springframework.util.Assert;
+
+import java.util.Map;
+
+/**
+ * 检查增量DqlOracle配置
+ *
+ * @author AE86
+ * @version 1.0.0
+ * @date 2020/4/10 20:57
+ */
+@Component
+public class DqlOracleLogConfigChecker implements MappingLogConfigChecker {
+
+    @Override
+    public void modify(Mapping mapping, Map<String, String> params) {
+        ListenerConfig config = mapping.getListener();
+        Assert.notNull(config, "ListenerConfig can not be null.");
+
+        String label = params.get("incrementStrategyLogTableLabel");
+        Assert.hasText(label, "DqlOracleLogConfigChecker check params incrementStrategyLogTableLabel is empty");
+        config.setTableLabel(label);
+        mapping.setListener(config);
+    }
+
+}

+ 3 - 7
dbsyncer-biz/src/main/java/org/dbsyncer/biz/checker/impl/tablegroup/TableGroupChecker.java

@@ -55,19 +55,15 @@ public class TableGroupChecker extends AbstractChecker {
         // 检查是否存在重复映射关系
         // 检查是否存在重复映射关系
         checkRepeatedTable(mappingId, sourceTable, targetTable);
         checkRepeatedTable(mappingId, sourceTable, targetTable);
 
 
-        // 读取表信息
-        Table sTable = getTable(mapping.getSourceConnectorId(), sourceTable);
-        Table tTable = getTable(mapping.getTargetConnectorId(), targetTable);
-
         TableGroup tableGroup = new TableGroup();
         TableGroup tableGroup = new TableGroup();
         tableGroup.setName(ConfigConstant.TABLE_GROUP);
         tableGroup.setName(ConfigConstant.TABLE_GROUP);
         tableGroup.setType(ConfigConstant.TABLE_GROUP);
         tableGroup.setType(ConfigConstant.TABLE_GROUP);
         tableGroup.setMappingId(mappingId);
         tableGroup.setMappingId(mappingId);
-        tableGroup.setSourceTable(sTable);
-        tableGroup.setTargetTable(tTable);
+        tableGroup.setSourceTable(getTable(mapping.getSourceConnectorId(), sourceTable));
+        tableGroup.setTargetTable(getTable(mapping.getTargetConnectorId(), targetTable));
 
 
         // 修改基本配置
         // 修改基本配置
-        this.modifyConfigModel(mapping, params);
+        this.modifyConfigModel(tableGroup, params);
         return tableGroup;
         return tableGroup;
     }
     }
 
 

+ 4 - 1
dbsyncer-connector/src/main/java/org/dbsyncer/connector/database/AbstractDatabaseConnector.java

@@ -11,6 +11,7 @@ import org.dbsyncer.connector.util.JDBCUtil;
 import org.slf4j.Logger;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.slf4j.LoggerFactory;
 import org.springframework.jdbc.core.JdbcTemplate;
 import org.springframework.jdbc.core.JdbcTemplate;
+import org.springframework.util.Assert;
 
 
 import java.sql.Connection;
 import java.sql.Connection;
 import java.sql.PreparedStatement;
 import java.sql.PreparedStatement;
@@ -227,6 +228,8 @@ public abstract class AbstractDatabaseConnector implements Database {
      * @return
      * @return
      */
      */
     protected List<String> getDqlTable(ConnectorConfig config) {
     protected List<String> getDqlTable(ConnectorConfig config) {
+        MetaInfo metaInfo = getDqlMetaInfo(config);
+        Assert.notNull(metaInfo, "SQL解析异常.");
         DatabaseConfig cfg = (DatabaseConfig) config;
         DatabaseConfig cfg = (DatabaseConfig) config;
         return Arrays.asList(cfg.getSql());
         return Arrays.asList(cfg.getSql());
     }
     }
@@ -245,7 +248,7 @@ public abstract class AbstractDatabaseConnector implements Database {
             jdbcTemplate = getJdbcTemplate(cfg);
             jdbcTemplate = getJdbcTemplate(cfg);
             metaInfo = DatabaseUtil.getMetaInfo(jdbcTemplate, cfg.getSql());
             metaInfo = DatabaseUtil.getMetaInfo(jdbcTemplate, cfg.getSql());
         } catch (Exception e) {
         } catch (Exception e) {
-            logger.error("getMetaInfo failed", e);
+            logger.error(e.getMessage());
         } finally {
         } finally {
             // 释放连接
             // 释放连接
             this.close(jdbcTemplate);
             this.close(jdbcTemplate);

+ 2 - 1
dbsyncer-web/src/main/resources/templates/mapping/editMappingIncrementDQL.html

@@ -3,7 +3,8 @@
       xmlns:th="http://www.thymeleaf.org" lang="zh-CN">
       xmlns:th="http://www.thymeleaf.org" lang="zh-CN">
 
 
 <div th:fragment="content">
 <div th:fragment="content">
-    <div class="form-group">
+    <!-- 针对DQL的连接器配置 -->
+    <div class="form-group" th:if="${#strings.startsWith(mapping?.sourceConnector?.config?.connectorType,'Dql')}">
         <div class="row">
         <div class="row">
             <div class="col-md-4">
             <div class="col-md-4">
                 <label class="col-sm-3 control-label text-right">表别名<strong class="driverVerifcateRequired">*</strong></label>
                 <label class="col-sm-3 control-label text-right">表别名<strong class="driverVerifcateRequired">*</strong></label>