فهرست منبع

Merge remote-tracking branch 'origin/ae86_dev' into ae86_dev

AE86 1 سال پیش
والد
کامیت
5cb894a946
1فایلهای تغییر یافته به همراه5 افزوده شده و 21 حذف شده
  1. 5 21
      dbsyncer-connector/src/main/java/org/dbsyncer/connector/sqlserver/SqlServerConnector.java

+ 5 - 21
dbsyncer-connector/src/main/java/org/dbsyncer/connector/sqlserver/SqlServerConnector.java

@@ -15,7 +15,6 @@ import org.dbsyncer.connector.model.Table;
 
 import java.util.ArrayList;
 import java.util.List;
-import java.util.Set;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 import java.util.stream.Collectors;
@@ -31,11 +30,6 @@ public final class SqlServerConnector extends AbstractDatabaseConnector {
      */
     private final String SYS_EXPRESSION = "(convert\\().+?(\\))|(varchar\\().+?(\\))|(getdate\\(\\))";
 
-    /**
-     * 系统关键字段名
-     */
-    private final Set<String> SYS_FIELDS = CollectionUtils.newHashSet("convert", "user", "type", "version", "close", "bulk", "source", "current_date");
-
     @Override
     public List<Table> getTable(DatabaseConnectorMapper connectorMapper) {
         DatabaseConfig config = connectorMapper.getConfig();
@@ -46,7 +40,7 @@ public final class SqlServerConnector extends AbstractDatabaseConnector {
 
     @Override
     public String getPageSql(PageSql config) {
-        List<String> primaryKeys = config.getPrimaryKeys();
+        List<String> primaryKeys = buildPrimaryKeys(config.getPrimaryKeys());
         String orderBy = StringUtil.join(primaryKeys, ",");
         return String.format(DatabaseConstant.SQLSERVER_PAGE_SQL, orderBy, config.getQuerySql());
     }
@@ -76,12 +70,12 @@ public final class SqlServerConnector extends AbstractDatabaseConnector {
 
     @Override
     public String buildTableName(String tableName) {
-        return containsKeyword(tableName) ? convertKey(tableName) : tableName;
+        return convertKey(tableName);
     }
 
     @Override
     public String buildFieldName(Field field) {
-        return containsKeyword(field.getName()) ? convertKey(field.getName()) : field.getName();
+        return convertKey(field.getName());
     }
 
     @Override
@@ -89,7 +83,7 @@ public final class SqlServerConnector extends AbstractDatabaseConnector {
         if (CollectionUtils.isEmpty(primaryKeys)) {
             return primaryKeys;
         }
-        return primaryKeys.stream().map(pk -> containsKeyword(pk) ? convertKey(pk) : pk).collect(Collectors.toList());
+        return primaryKeys.stream().map(pk -> convertKey(pk)).collect(Collectors.toList());
     }
 
     @Override
@@ -103,7 +97,7 @@ public final class SqlServerConnector extends AbstractDatabaseConnector {
         DatabaseConfig cfg = (DatabaseConfig) commandConfig.getConnectorConfig();
         // 从存储过程查询(定时更新总数,可能存在误差)
         return String.format("select rows from sysindexes where id = object_id('%s.%s') and indid in (0, 1)", cfg.getSchema(),
-                table.getName());
+                buildTableName(table.getName()));
     }
 
     private List<Table> getTables(DatabaseConnectorMapper connectorMapper, String sql, TableTypeEnum type) {
@@ -118,16 +112,6 @@ public final class SqlServerConnector extends AbstractDatabaseConnector {
         return new StringBuilder("[").append(key).append("]").toString();
     }
 
-    /**
-     * 是否包含系统关键字
-     *
-     * @param val
-     * @return
-     */
-    private boolean containsKeyword(String val) {
-        return StringUtil.isNotBlank(val) && SYS_FIELDS.contains(val.toLowerCase());
-    }
-
     /**
      * 是否包含系统关键字
      *