addDatabaseConnection(
DbConnectionCreateRequest request) {
if (StringUtils.isBlank(request.getName())) {
diff --git a/dbswitch-admin/src/main/java/com/gitee/dbswitch/admin/service/JobExecutorService.java b/dbswitch-admin/src/main/java/com/gitee/dbswitch/admin/service/JobExecutorService.java
index 906be8fa..e2aa9292 100644
--- a/dbswitch-admin/src/main/java/com/gitee/dbswitch/admin/service/JobExecutorService.java
+++ b/dbswitch-admin/src/main/java/com/gitee/dbswitch/admin/service/JobExecutorService.java
@@ -40,8 +40,7 @@ import org.springframework.scheduling.quartz.QuartzJobBean;
/**
*
- * 如果你使用了@PersistJobDataAfterExecution注解,则强烈建议你同时使用@DisallowConcurrentExecution注
- * 解,因为当同一个job(JobDetail)的两个实例被并发执行时,由于竞争,JobDataMap中存储的数据很可能是不确定的。
+ * 如果你使用了@PersistJobDataAfterExecution注解,则强烈建议你同时使用@DisallowConcurrentExecution注 解,因为当同一个job(JobDetail)的两个实例被并发执行时,由于竞争,JobDataMap中存储的数据很可能是不确定的。
*
*/
@Slf4j
@@ -61,7 +60,7 @@ public class JobExecutorService extends QuartzJobBean implements InterruptableJo
/**
* 作为一个是否被中断的标识
*/
- private boolean interrupted = false;
+ private volatile boolean interrupted = false;
/**
* 记录当前线程
@@ -106,7 +105,7 @@ public class JobExecutorService extends QuartzJobBean implements InterruptableJo
currentThread = Thread.currentThread();
JobDataMap jobDataMap = context.getJobDetail().getJobDataMap();
if (interrupted) {
- log.info("Quartz task id:{} interrupted", jobDataMap.getLong(TASK_ID));
+ log.info("Quartz task id:{} interrupted when thread begin", jobDataMap.getLong(TASK_ID));
return;
}
@@ -119,6 +118,10 @@ public class JobExecutorService extends QuartzJobBean implements InterruptableJo
try {
ReentrantLock lock = mutexes.get(taskId.toString(), ReentrantLock::new);
while (!lock.tryLock(1, TimeUnit.SECONDS)) {
+ if (interrupted) {
+ log.info("Quartz task id:{} interrupted when get lock", jobDataMap.getLong(TASK_ID));
+ return;
+ }
TimeUnit.SECONDS.sleep(1);
}
@@ -145,7 +148,7 @@ public class JobExecutorService extends QuartzJobBean implements InterruptableJo
MigrationService mainService = new MigrationService(properties);
if (interrupted) {
- log.info("Quartz task id:{} interrupted", jobDataMap.getLong(TASK_ID));
+ log.info("Quartz task id:{} interrupted when prepare stage", jobDataMap.getLong(TASK_ID));
return;
}
diff --git a/dbswitch-admin/src/main/java/com/gitee/dbswitch/admin/util/CacheUtils.java b/dbswitch-admin/src/main/java/com/gitee/dbswitch/admin/util/CacheUtils.java
index b5047754..21d71d06 100644
--- a/dbswitch-admin/src/main/java/com/gitee/dbswitch/admin/util/CacheUtils.java
+++ b/dbswitch-admin/src/main/java/com/gitee/dbswitch/admin/util/CacheUtils.java
@@ -15,7 +15,7 @@ import java.util.Collection;
import java.util.Map;
import java.util.concurrent.TimeUnit;
-public class CacheUtils {
+public final class CacheUtils {
// 缓存时间 2 hours
public static final long CACHE_DURATION_SECONDS = 7200;
diff --git a/dbswitch-admin/src/main/java/com/gitee/dbswitch/admin/util/CronExprUtils.java b/dbswitch-admin/src/main/java/com/gitee/dbswitch/admin/util/CronExprUtils.java
index 8301d9a2..73f4980f 100644
--- a/dbswitch-admin/src/main/java/com/gitee/dbswitch/admin/util/CronExprUtils.java
+++ b/dbswitch-admin/src/main/java/com/gitee/dbswitch/admin/util/CronExprUtils.java
@@ -21,6 +21,8 @@ import org.quartz.CronExpression;
*/
public final class CronExprUtils {
+ public static final int MIN_INTERVAL_SECONDS = 120;
+
/**
* 检查CRON表达式的有效性
*
@@ -33,7 +35,7 @@ public final class CronExprUtils {
try {
expression = new CronExpression(cronExpression);
} catch (ParseException e) {
- throw new DbswitchException(ResultCode.ERROR_INVALID_ARGUMENT, String.format("正则表达式%s无效"));
+ throw new DbswitchException(ResultCode.ERROR_INVALID_ARGUMENT, String.format("cron表达式%s无效"));
}
Date nextDate = expression.getNextValidTimeAfter(new Date(System.currentTimeMillis()));
if (null == nextDate) {
diff --git a/dbswitch-admin/src/main/java/com/gitee/dbswitch/admin/util/JDBCURL.java b/dbswitch-admin/src/main/java/com/gitee/dbswitch/admin/util/JDBCURL.java
index 936641d8..5bd0868d 100644
--- a/dbswitch-admin/src/main/java/com/gitee/dbswitch/admin/util/JDBCURL.java
+++ b/dbswitch-admin/src/main/java/com/gitee/dbswitch/admin/util/JDBCURL.java
@@ -24,7 +24,7 @@ import java.util.regex.Pattern;
* @date 2021-11-20 22:54:21
* @since 1.0
*/
-public class JDBCURL {
+public final class JDBCURL {
public static final String PROP_HOST = "host"; //$NON-NLS-1$
public static final String PROP_PORT = "port"; //$NON-NLS-1$
diff --git a/dbswitch-admin/src/main/java/com/gitee/dbswitch/admin/util/LockUtils.java b/dbswitch-admin/src/main/java/com/gitee/dbswitch/admin/util/LockUtils.java
new file mode 100644
index 00000000..18ab9a63
--- /dev/null
+++ b/dbswitch-admin/src/main/java/com/gitee/dbswitch/admin/util/LockUtils.java
@@ -0,0 +1,65 @@
+// Copyright tang. All rights reserved.
+// https://gitee.com/inrgihc/dbswitch
+//
+// Use of this source code is governed by a BSD-style license
+//
+// Author: tang (inrgihc@126.com)
+// Date : 2020/1/2
+// Location: beijing , china
+/////////////////////////////////////////////////////////////
+package com.gitee.dbswitch.admin.util;
+
+import com.google.common.cache.Cache;
+import com.google.common.cache.CacheBuilder;
+import java.util.concurrent.Callable;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.locks.ReentrantLock;
+
+public final class LockUtils {
+
+ private static final Cache mutexes = CacheBuilder
+ .newBuilder()
+ .expireAfterWrite(24 * 60L, TimeUnit.MINUTES) // 缓存时间
+ .build();
+
+ public static T runInLock(String key, int timeout, TimeUnit timeUnit, Callable callable) {
+ ReentrantLock lock = null;
+ boolean locked = false;
+ try {
+ lock = mutexes.get(key, ReentrantLock::new);
+ locked = lock.tryLock(timeout, timeUnit);
+ if (!locked) {
+ throw new RuntimeException("Acquire lock timeout");
+ }
+ return callable.call();
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ } finally {
+ if (lock != null && locked) {
+ lock.unlock();
+ }
+ }
+ }
+
+ public static void runInLock(String key, int timeout, TimeUnit timeUnit, Runnable runnable) {
+ ReentrantLock lock = null;
+ boolean locked = false;
+ try {
+ lock = mutexes.get(key, ReentrantLock::new);
+ locked = lock.tryLock(timeout, timeUnit);
+ if (!locked) {
+ throw new RuntimeException("Acquire lock timeout");
+ }
+ runnable.run();
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ } finally {
+ if (lock != null && locked) {
+ lock.unlock();
+ }
+ }
+ }
+
+ private LockUtils() {
+ }
+}
diff --git a/dbswitch-admin/src/main/java/com/gitee/dbswitch/admin/util/PageUtils.java b/dbswitch-admin/src/main/java/com/gitee/dbswitch/admin/util/PageUtils.java
index 069d58e7..1cde5ad8 100644
--- a/dbswitch-admin/src/main/java/com/gitee/dbswitch/admin/util/PageUtils.java
+++ b/dbswitch-admin/src/main/java/com/gitee/dbswitch/admin/util/PageUtils.java
@@ -19,7 +19,7 @@ import java.util.function.Supplier;
/**
* 分页工具类
*/
-public class PageUtils {
+public final class PageUtils {
public static PageResult getPage(Supplier> method, Integer pageNum,
Integer pageSize) {
diff --git a/dbswitch-admin/src/main/java/com/gitee/dbswitch/admin/util/ServletUtils.java b/dbswitch-admin/src/main/java/com/gitee/dbswitch/admin/util/ServletUtils.java
index a9c5135c..f9a8cb8e 100644
--- a/dbswitch-admin/src/main/java/com/gitee/dbswitch/admin/util/ServletUtils.java
+++ b/dbswitch-admin/src/main/java/com/gitee/dbswitch/admin/util/ServletUtils.java
@@ -19,7 +19,7 @@ import org.springframework.web.context.request.ServletRequestAttributes;
* 获取Servlet服务器的HTTP参数相关工具类
*/
@Slf4j
-public class ServletUtils {
+public final class ServletUtils {
public static HttpServletRequest getHttpServletRequest() {
return ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
diff --git a/dbswitch-admin/src/main/java/com/gitee/dbswitch/admin/util/SpringUtils.java b/dbswitch-admin/src/main/java/com/gitee/dbswitch/admin/util/SpringUtils.java
index 30475d31..8887b263 100644
--- a/dbswitch-admin/src/main/java/com/gitee/dbswitch/admin/util/SpringUtils.java
+++ b/dbswitch-admin/src/main/java/com/gitee/dbswitch/admin/util/SpringUtils.java
@@ -18,7 +18,7 @@ import org.springframework.stereotype.Component;
* Spring容器获取BEAN工具类
*/
@Component
-public class SpringUtils implements ApplicationContextAware {
+public final class SpringUtils implements ApplicationContextAware {
private static ApplicationContext applicationContext;
diff --git a/dbswitch-admin/src/main/java/com/gitee/dbswitch/admin/util/TokenUtils.java b/dbswitch-admin/src/main/java/com/gitee/dbswitch/admin/util/TokenUtils.java
index 3a04c90c..3e959a6c 100644
--- a/dbswitch-admin/src/main/java/com/gitee/dbswitch/admin/util/TokenUtils.java
+++ b/dbswitch-admin/src/main/java/com/gitee/dbswitch/admin/util/TokenUtils.java
@@ -19,7 +19,7 @@ import org.springframework.util.StringUtils;
* Token工具类
*/
@Slf4j
-public class TokenUtils {
+public final class TokenUtils {
private static final char[] hexCode = "0123456789abcdefgh".toCharArray();
diff --git a/dbswitch-admin/src/main/java/com/gitee/dbswitch/admin/util/UuidUtils.java b/dbswitch-admin/src/main/java/com/gitee/dbswitch/admin/util/UuidUtils.java
index cdb10392..bc51df32 100644
--- a/dbswitch-admin/src/main/java/com/gitee/dbswitch/admin/util/UuidUtils.java
+++ b/dbswitch-admin/src/main/java/com/gitee/dbswitch/admin/util/UuidUtils.java
@@ -14,7 +14,7 @@ import java.util.UUID;
/**
* UUID工具类
*/
-public class UuidUtils {
+public final class UuidUtils {
public static String generateUuid() {
return UUID.randomUUID().toString().replace("-", "");
diff --git a/dbswitch-admin/src/main/resources/db/migration/V1_0_5__system-ddl.sql b/dbswitch-admin/src/main/resources/db/migration/V1_0_5__system-ddl.sql
new file mode 100644
index 00000000..7e6967bb
--- /dev/null
+++ b/dbswitch-admin/src/main/resources/db/migration/V1_0_5__system-ddl.sql
@@ -0,0 +1,2 @@
+ALTER TABLE `DBSWITCH_ASSIGNMENT_CONFIG`
+ADD COLUMN `table_type` VARCHAR(32) NULL DEFAULT 'TABLE' COMMENT '表类型:TABLE;VIEW' AFTER `source_schema`;
diff --git a/dbswitch-common/src/main/java/com/gitee/dbswitch/common/type/DatabaseTypeEnum.java b/dbswitch-common/src/main/java/com/gitee/dbswitch/common/type/ProductTypeEnum.java
similarity index 83%
rename from dbswitch-common/src/main/java/com/gitee/dbswitch/common/type/DatabaseTypeEnum.java
rename to dbswitch-common/src/main/java/com/gitee/dbswitch/common/type/ProductTypeEnum.java
index b3d7702c..af379a72 100644
--- a/dbswitch-common/src/main/java/com/gitee/dbswitch/common/type/DatabaseTypeEnum.java
+++ b/dbswitch-common/src/main/java/com/gitee/dbswitch/common/type/ProductTypeEnum.java
@@ -12,11 +12,11 @@ package com.gitee.dbswitch.common.type;
import java.util.Arrays;
/**
- * 数据库类型的枚举定义
+ * 数据库产品类型的枚举定义
*
* @author Tang
*/
-public enum DatabaseTypeEnum {
+public enum ProductTypeEnum {
/**
* 未知数据库类型
*/
@@ -100,7 +100,7 @@ public enum DatabaseTypeEnum {
private int index;
- DatabaseTypeEnum(int idx) {
+ ProductTypeEnum(int idx) {
this.index = idx;
}
@@ -110,12 +110,12 @@ public enum DatabaseTypeEnum {
public boolean noCommentStatement() {
return Arrays.asList(
- DatabaseTypeEnum.MYSQL,
- DatabaseTypeEnum.MARIADB,
- DatabaseTypeEnum.GBASE8A,
- DatabaseTypeEnum.HIVE,
- DatabaseTypeEnum.SQLITE3,
- DatabaseTypeEnum.SYBASE
+ ProductTypeEnum.MYSQL,
+ ProductTypeEnum.MARIADB,
+ ProductTypeEnum.GBASE8A,
+ ProductTypeEnum.HIVE,
+ ProductTypeEnum.SQLITE3,
+ ProductTypeEnum.SYBASE
).contains(this);
}
diff --git a/dbswitch-common/src/main/java/com/gitee/dbswitch/common/util/DatabaseAwareUtils.java b/dbswitch-common/src/main/java/com/gitee/dbswitch/common/util/DatabaseAwareUtils.java
index 2513fa43..6fad174f 100644
--- a/dbswitch-common/src/main/java/com/gitee/dbswitch/common/util/DatabaseAwareUtils.java
+++ b/dbswitch-common/src/main/java/com/gitee/dbswitch/common/util/DatabaseAwareUtils.java
@@ -9,7 +9,7 @@
/////////////////////////////////////////////////////////////
package com.gitee.dbswitch.common.util;
-import com.gitee.dbswitch.common.type.DatabaseTypeEnum;
+import com.gitee.dbswitch.common.type.ProductTypeEnum;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
@@ -25,42 +25,42 @@ import javax.sql.DataSource;
*/
public final class DatabaseAwareUtils {
- private static final Map productNameMap;
+ private static final Map productNameMap;
- private static final Map driverNameMap;
+ private static final Map driverNameMap;
static {
productNameMap = new HashMap<>();
driverNameMap = new HashMap<>();
- productNameMap.put("Greenplum", DatabaseTypeEnum.GREENPLUM);
- productNameMap.put("Microsoft SQL Server", DatabaseTypeEnum.SQLSERVER);
- productNameMap.put("DM DBMS", DatabaseTypeEnum.DM);
- productNameMap.put("KingbaseES", DatabaseTypeEnum.KINGBASE);
- productNameMap.put("Apache Hive", DatabaseTypeEnum.HIVE);
- productNameMap.put("MySQL", DatabaseTypeEnum.MYSQL);
- productNameMap.put("MariaDB", DatabaseTypeEnum.MARIADB);
- productNameMap.put("Oracle", DatabaseTypeEnum.ORACLE);
- productNameMap.put("PostgreSQL", DatabaseTypeEnum.POSTGRESQL);
- productNameMap.put("DB2 for Unix/Windows", DatabaseTypeEnum.DB2);
- productNameMap.put("Hive", DatabaseTypeEnum.HIVE);
- productNameMap.put("SQLite", DatabaseTypeEnum.SQLITE3);
- productNameMap.put("OSCAR", DatabaseTypeEnum.OSCAR);
- productNameMap.put("GBase", DatabaseTypeEnum.GBASE8A);
- productNameMap.put("Adaptive Server Enterprise", DatabaseTypeEnum.SYBASE);
+ productNameMap.put("Greenplum", ProductTypeEnum.GREENPLUM);
+ productNameMap.put("Microsoft SQL Server", ProductTypeEnum.SQLSERVER);
+ productNameMap.put("DM DBMS", ProductTypeEnum.DM);
+ productNameMap.put("KingbaseES", ProductTypeEnum.KINGBASE);
+ productNameMap.put("Apache Hive", ProductTypeEnum.HIVE);
+ productNameMap.put("MySQL", ProductTypeEnum.MYSQL);
+ productNameMap.put("MariaDB", ProductTypeEnum.MARIADB);
+ productNameMap.put("Oracle", ProductTypeEnum.ORACLE);
+ productNameMap.put("PostgreSQL", ProductTypeEnum.POSTGRESQL);
+ productNameMap.put("DB2 for Unix/Windows", ProductTypeEnum.DB2);
+ productNameMap.put("Hive", ProductTypeEnum.HIVE);
+ productNameMap.put("SQLite", ProductTypeEnum.SQLITE3);
+ productNameMap.put("OSCAR", ProductTypeEnum.OSCAR);
+ productNameMap.put("GBase", ProductTypeEnum.GBASE8A);
+ productNameMap.put("Adaptive Server Enterprise", ProductTypeEnum.SYBASE);
- driverNameMap.put("MySQL Connector Java", DatabaseTypeEnum.MYSQL);
- driverNameMap.put("MariaDB Connector/J", DatabaseTypeEnum.MARIADB);
- driverNameMap.put("Oracle JDBC driver", DatabaseTypeEnum.ORACLE);
- driverNameMap.put("PostgreSQL JDBC Driver", DatabaseTypeEnum.POSTGRESQL);
- driverNameMap.put("Kingbase8 JDBC Driver", DatabaseTypeEnum.KINGBASE);
- driverNameMap.put("IBM Data Server Driver for JDBC and SQLJ", DatabaseTypeEnum.DB2);
- driverNameMap.put("dm.jdbc.driver.DmDriver", DatabaseTypeEnum.DM);
- driverNameMap.put("Hive JDBC", DatabaseTypeEnum.HIVE);
- driverNameMap.put("SQLite JDBC", DatabaseTypeEnum.SQLITE3);
- driverNameMap.put("OSCAR JDBC DRIVER", DatabaseTypeEnum.OSCAR);
- driverNameMap.put("GBase JDBC Driver", DatabaseTypeEnum.GBASE8A);
- driverNameMap.put("jConnect (TM) for JDBC (TM)", DatabaseTypeEnum.SYBASE);
+ driverNameMap.put("MySQL Connector Java", ProductTypeEnum.MYSQL);
+ driverNameMap.put("MariaDB Connector/J", ProductTypeEnum.MARIADB);
+ driverNameMap.put("Oracle JDBC driver", ProductTypeEnum.ORACLE);
+ driverNameMap.put("PostgreSQL JDBC Driver", ProductTypeEnum.POSTGRESQL);
+ driverNameMap.put("Kingbase8 JDBC Driver", ProductTypeEnum.KINGBASE);
+ driverNameMap.put("IBM Data Server Driver for JDBC and SQLJ", ProductTypeEnum.DB2);
+ driverNameMap.put("dm.jdbc.driver.DmDriver", ProductTypeEnum.DM);
+ driverNameMap.put("Hive JDBC", ProductTypeEnum.HIVE);
+ driverNameMap.put("SQLite JDBC", ProductTypeEnum.SQLITE3);
+ driverNameMap.put("OSCAR JDBC DRIVER", ProductTypeEnum.OSCAR);
+ driverNameMap.put("GBase JDBC Driver", ProductTypeEnum.GBASE8A);
+ driverNameMap.put("jConnect (TM) for JDBC (TM)", ProductTypeEnum.SYBASE);
}
/**
@@ -69,7 +69,7 @@ public final class DatabaseAwareUtils {
* @param dataSource 数据源
* @return 数据库产品名称字符串
*/
- public static DatabaseTypeEnum getDatabaseTypeByDataSource(DataSource dataSource) {
+ public static ProductTypeEnum getDatabaseTypeByDataSource(DataSource dataSource) {
try (Connection connection = dataSource.getConnection()) {
String productName = connection.getMetaData().getDatabaseProductName();
String driverName = connection.getMetaData().getDriverName();
@@ -77,7 +77,7 @@ public final class DatabaseAwareUtils {
return driverNameMap.get(driverName);
}
- DatabaseTypeEnum type = productNameMap.get(productName);
+ ProductTypeEnum type = productNameMap.get(productName);
if (null == type) {
throw new IllegalStateException("Unable to detect database type from data source instance");
}
diff --git a/dbswitch-core/src/main/java/com/gitee/dbswitch/core/database/AbstractDatabase.java b/dbswitch-core/src/main/java/com/gitee/dbswitch/core/database/AbstractDatabase.java
index 57160879..8329766f 100644
--- a/dbswitch-core/src/main/java/com/gitee/dbswitch/core/database/AbstractDatabase.java
+++ b/dbswitch-core/src/main/java/com/gitee/dbswitch/core/database/AbstractDatabase.java
@@ -9,7 +9,7 @@
/////////////////////////////////////////////////////////////
package com.gitee.dbswitch.core.database;
-import com.gitee.dbswitch.common.type.DatabaseTypeEnum;
+import com.gitee.dbswitch.common.type.ProductTypeEnum;
import com.gitee.dbswitch.common.util.DbswitchStrUtils;
import com.gitee.dbswitch.common.util.HivePrepareUtils;
import com.gitee.dbswitch.common.util.TypeConvertUtils;
@@ -171,7 +171,7 @@ public abstract class AbstractDatabase implements IDatabaseInterface {
data.setColumns(new ArrayList<>());
data.setRows(new ArrayList<>());
try (Statement st = connection.createStatement()) {
- if (getDatabaseType() == DatabaseTypeEnum.HIVE) {
+ if (getDatabaseType() == ProductTypeEnum.HIVE) {
HivePrepareUtils.prepare(connection, schemaName, tableName);
}
@@ -259,7 +259,7 @@ public abstract class AbstractDatabase implements IDatabaseInterface {
protected List getSelectSqlColumnMeta(Connection connection, String querySQL) {
List ret = new ArrayList<>();
try (Statement st = connection.createStatement()) {
- if (getDatabaseType() == DatabaseTypeEnum.HIVE) {
+ if (getDatabaseType() == ProductTypeEnum.HIVE) {
HivePrepareUtils.setResultSetColumnNameNotUnique(connection);
}
diff --git a/dbswitch-core/src/main/java/com/gitee/dbswitch/core/database/DatabaseFactory.java b/dbswitch-core/src/main/java/com/gitee/dbswitch/core/database/DatabaseFactory.java
index 501fcf7b..535238bf 100644
--- a/dbswitch-core/src/main/java/com/gitee/dbswitch/core/database/DatabaseFactory.java
+++ b/dbswitch-core/src/main/java/com/gitee/dbswitch/core/database/DatabaseFactory.java
@@ -9,7 +9,7 @@
/////////////////////////////////////////////////////////////
package com.gitee.dbswitch.core.database;
-import com.gitee.dbswitch.common.type.DatabaseTypeEnum;
+import com.gitee.dbswitch.common.type.ProductTypeEnum;
import com.gitee.dbswitch.core.database.impl.DatabaseDB2Impl;
import com.gitee.dbswitch.core.database.impl.DatabaseDmImpl;
import com.gitee.dbswitch.core.database.impl.DatabaseGbase8aImpl;
@@ -36,32 +36,32 @@ import java.util.concurrent.Callable;
*/
public final class DatabaseFactory {
- private static final Map> DATABASE_MAPPER
- = new HashMap>() {
+ private static final Map> DATABASE_MAPPER
+ = new HashMap>() {
private static final long serialVersionUID = 9202705534880971997L;
{
- put(DatabaseTypeEnum.MYSQL, DatabaseMysqlImpl::new);
- put(DatabaseTypeEnum.MARIADB, DatabaseMariaDBImpl::new);
- put(DatabaseTypeEnum.ORACLE, DatabaseOracleImpl::new);
- put(DatabaseTypeEnum.SQLSERVER2000, DatabaseSqlserver2000Impl::new);
- put(DatabaseTypeEnum.SQLSERVER, DatabaseSqlserverImpl::new);
- put(DatabaseTypeEnum.POSTGRESQL, DatabasePostgresImpl::new);
- put(DatabaseTypeEnum.GREENPLUM, DatabaseGreenplumImpl::new);
- put(DatabaseTypeEnum.DB2, DatabaseDB2Impl::new);
- put(DatabaseTypeEnum.DM, DatabaseDmImpl::new);
- put(DatabaseTypeEnum.SYBASE, DatabaseSybaseImpl::new);
- put(DatabaseTypeEnum.KINGBASE, DatabaseKingbaseImpl::new);
- put(DatabaseTypeEnum.OSCAR, DatabaseOscarImpl::new);
- put(DatabaseTypeEnum.GBASE8A, DatabaseGbase8aImpl::new);
- put(DatabaseTypeEnum.SYBASE, DatabaseSybaseImpl::new);
- put(DatabaseTypeEnum.HIVE, DatabaseHiveImpl::new);
- put(DatabaseTypeEnum.SQLITE3, DatabaseSqliteImpl::new);
+ put(ProductTypeEnum.MYSQL, DatabaseMysqlImpl::new);
+ put(ProductTypeEnum.MARIADB, DatabaseMariaDBImpl::new);
+ put(ProductTypeEnum.ORACLE, DatabaseOracleImpl::new);
+ put(ProductTypeEnum.SQLSERVER2000, DatabaseSqlserver2000Impl::new);
+ put(ProductTypeEnum.SQLSERVER, DatabaseSqlserverImpl::new);
+ put(ProductTypeEnum.POSTGRESQL, DatabasePostgresImpl::new);
+ put(ProductTypeEnum.GREENPLUM, DatabaseGreenplumImpl::new);
+ put(ProductTypeEnum.DB2, DatabaseDB2Impl::new);
+ put(ProductTypeEnum.DM, DatabaseDmImpl::new);
+ put(ProductTypeEnum.SYBASE, DatabaseSybaseImpl::new);
+ put(ProductTypeEnum.KINGBASE, DatabaseKingbaseImpl::new);
+ put(ProductTypeEnum.OSCAR, DatabaseOscarImpl::new);
+ put(ProductTypeEnum.GBASE8A, DatabaseGbase8aImpl::new);
+ put(ProductTypeEnum.SYBASE, DatabaseSybaseImpl::new);
+ put(ProductTypeEnum.HIVE, DatabaseHiveImpl::new);
+ put(ProductTypeEnum.SQLITE3, DatabaseSqliteImpl::new);
}
};
- public static AbstractDatabase getDatabaseInstance(DatabaseTypeEnum type) {
+ public static AbstractDatabase getDatabaseInstance(ProductTypeEnum type) {
Callable callable = DATABASE_MAPPER.get(type);
if (null != callable) {
try {
diff --git a/dbswitch-core/src/main/java/com/gitee/dbswitch/core/database/IDatabaseInterface.java b/dbswitch-core/src/main/java/com/gitee/dbswitch/core/database/IDatabaseInterface.java
index 233230a2..94f201fc 100644
--- a/dbswitch-core/src/main/java/com/gitee/dbswitch/core/database/IDatabaseInterface.java
+++ b/dbswitch-core/src/main/java/com/gitee/dbswitch/core/database/IDatabaseInterface.java
@@ -9,7 +9,7 @@
/////////////////////////////////////////////////////////////
package com.gitee.dbswitch.core.database;
-import com.gitee.dbswitch.common.type.DatabaseTypeEnum;
+import com.gitee.dbswitch.common.type.ProductTypeEnum;
import com.gitee.dbswitch.core.model.ColumnDescription;
import com.gitee.dbswitch.core.model.ColumnMetaData;
import com.gitee.dbswitch.core.model.SchemaTableData;
@@ -29,7 +29,7 @@ public interface IDatabaseInterface {
*
* @return 数据库类型
*/
- DatabaseTypeEnum getDatabaseType();
+ ProductTypeEnum getDatabaseType();
/**
* 获取数据库的JDBC驱动类
diff --git a/dbswitch-core/src/main/java/com/gitee/dbswitch/core/database/impl/DatabaseDB2Impl.java b/dbswitch-core/src/main/java/com/gitee/dbswitch/core/database/impl/DatabaseDB2Impl.java
index 9aa9f804..6d7f846f 100644
--- a/dbswitch-core/src/main/java/com/gitee/dbswitch/core/database/impl/DatabaseDB2Impl.java
+++ b/dbswitch-core/src/main/java/com/gitee/dbswitch/core/database/impl/DatabaseDB2Impl.java
@@ -10,7 +10,7 @@
package com.gitee.dbswitch.core.database.impl;
import com.gitee.dbswitch.common.constant.Const;
-import com.gitee.dbswitch.common.type.DatabaseTypeEnum;
+import com.gitee.dbswitch.common.type.ProductTypeEnum;
import com.gitee.dbswitch.core.database.AbstractDatabase;
import com.gitee.dbswitch.core.database.IDatabaseInterface;
import com.gitee.dbswitch.core.model.ColumnDescription;
@@ -49,8 +49,8 @@ public class DatabaseDB2Impl extends AbstractDatabase implements IDatabaseInterf
}
@Override
- public DatabaseTypeEnum getDatabaseType() {
- return DatabaseTypeEnum.DB2;
+ public ProductTypeEnum getDatabaseType() {
+ return ProductTypeEnum.DB2;
}
@Override
diff --git a/dbswitch-core/src/main/java/com/gitee/dbswitch/core/database/impl/DatabaseDmImpl.java b/dbswitch-core/src/main/java/com/gitee/dbswitch/core/database/impl/DatabaseDmImpl.java
index 3853631b..ed12bdf6 100644
--- a/dbswitch-core/src/main/java/com/gitee/dbswitch/core/database/impl/DatabaseDmImpl.java
+++ b/dbswitch-core/src/main/java/com/gitee/dbswitch/core/database/impl/DatabaseDmImpl.java
@@ -10,7 +10,7 @@
package com.gitee.dbswitch.core.database.impl;
import com.gitee.dbswitch.common.constant.Const;
-import com.gitee.dbswitch.common.type.DatabaseTypeEnum;
+import com.gitee.dbswitch.common.type.ProductTypeEnum;
import com.gitee.dbswitch.core.database.AbstractDatabase;
import com.gitee.dbswitch.core.database.IDatabaseInterface;
import com.gitee.dbswitch.core.model.ColumnDescription;
@@ -41,8 +41,8 @@ public class DatabaseDmImpl extends AbstractDatabase implements IDatabaseInterfa
}
@Override
- public DatabaseTypeEnum getDatabaseType() {
- return DatabaseTypeEnum.DM;
+ public ProductTypeEnum getDatabaseType() {
+ return ProductTypeEnum.DM;
}
@Override
diff --git a/dbswitch-core/src/main/java/com/gitee/dbswitch/core/database/impl/DatabaseGbase8aImpl.java b/dbswitch-core/src/main/java/com/gitee/dbswitch/core/database/impl/DatabaseGbase8aImpl.java
index 11e2749b..e29cc201 100644
--- a/dbswitch-core/src/main/java/com/gitee/dbswitch/core/database/impl/DatabaseGbase8aImpl.java
+++ b/dbswitch-core/src/main/java/com/gitee/dbswitch/core/database/impl/DatabaseGbase8aImpl.java
@@ -9,7 +9,7 @@
/////////////////////////////////////////////////////////////
package com.gitee.dbswitch.core.database.impl;
-import com.gitee.dbswitch.common.type.DatabaseTypeEnum;
+import com.gitee.dbswitch.common.type.ProductTypeEnum;
/**
* 支持GBase8a数据库的元信息实现
@@ -23,8 +23,8 @@ public class DatabaseGbase8aImpl extends DatabaseMysqlImpl {
}
@Override
- public DatabaseTypeEnum getDatabaseType() {
- return DatabaseTypeEnum.GBASE8A;
+ public ProductTypeEnum getDatabaseType() {
+ return ProductTypeEnum.GBASE8A;
}
}
\ No newline at end of file
diff --git a/dbswitch-core/src/main/java/com/gitee/dbswitch/core/database/impl/DatabaseGreenplumImpl.java b/dbswitch-core/src/main/java/com/gitee/dbswitch/core/database/impl/DatabaseGreenplumImpl.java
index 7cf170d1..8e6744cd 100644
--- a/dbswitch-core/src/main/java/com/gitee/dbswitch/core/database/impl/DatabaseGreenplumImpl.java
+++ b/dbswitch-core/src/main/java/com/gitee/dbswitch/core/database/impl/DatabaseGreenplumImpl.java
@@ -10,7 +10,7 @@
package com.gitee.dbswitch.core.database.impl;
import com.gitee.dbswitch.common.constant.Const;
-import com.gitee.dbswitch.common.type.DatabaseTypeEnum;
+import com.gitee.dbswitch.common.type.ProductTypeEnum;
import com.gitee.dbswitch.core.database.AbstractDatabase;
import com.gitee.dbswitch.core.database.IDatabaseInterface;
import com.gitee.dbswitch.core.database.constant.PostgresqlConst;
@@ -54,8 +54,8 @@ public class DatabaseGreenplumImpl extends AbstractDatabase implements IDatabase
}
@Override
- public DatabaseTypeEnum getDatabaseType() {
- return DatabaseTypeEnum.GREENPLUM;
+ public ProductTypeEnum getDatabaseType() {
+ return ProductTypeEnum.GREENPLUM;
}
@Override
diff --git a/dbswitch-core/src/main/java/com/gitee/dbswitch/core/database/impl/DatabaseHiveImpl.java b/dbswitch-core/src/main/java/com/gitee/dbswitch/core/database/impl/DatabaseHiveImpl.java
index 98e618e5..a7d30af3 100644
--- a/dbswitch-core/src/main/java/com/gitee/dbswitch/core/database/impl/DatabaseHiveImpl.java
+++ b/dbswitch-core/src/main/java/com/gitee/dbswitch/core/database/impl/DatabaseHiveImpl.java
@@ -10,7 +10,7 @@
package com.gitee.dbswitch.core.database.impl;
import com.gitee.dbswitch.common.constant.Const;
-import com.gitee.dbswitch.common.type.DatabaseTypeEnum;
+import com.gitee.dbswitch.common.type.ProductTypeEnum;
import com.gitee.dbswitch.common.util.HivePrepareUtils;
import com.gitee.dbswitch.core.database.AbstractDatabase;
import com.gitee.dbswitch.core.database.IDatabaseInterface;
@@ -37,8 +37,8 @@ public class DatabaseHiveImpl extends AbstractDatabase implements IDatabaseInter
}
@Override
- public DatabaseTypeEnum getDatabaseType() {
- return DatabaseTypeEnum.HIVE;
+ public ProductTypeEnum getDatabaseType() {
+ return ProductTypeEnum.HIVE;
}
@Override
@@ -115,7 +115,7 @@ public class DatabaseHiveImpl extends AbstractDatabase implements IDatabaseInter
// nothing more we can do here by catch the exception.
}
cd.setSigned(signed);
- cd.setDbType(DatabaseTypeEnum.HIVE);
+ cd.setDbType(ProductTypeEnum.HIVE);
ret.add(cd);
}
diff --git a/dbswitch-core/src/main/java/com/gitee/dbswitch/core/database/impl/DatabaseKingbaseImpl.java b/dbswitch-core/src/main/java/com/gitee/dbswitch/core/database/impl/DatabaseKingbaseImpl.java
index 76aab92b..272554ed 100644
--- a/dbswitch-core/src/main/java/com/gitee/dbswitch/core/database/impl/DatabaseKingbaseImpl.java
+++ b/dbswitch-core/src/main/java/com/gitee/dbswitch/core/database/impl/DatabaseKingbaseImpl.java
@@ -10,7 +10,7 @@
package com.gitee.dbswitch.core.database.impl;
import com.gitee.dbswitch.common.constant.Const;
-import com.gitee.dbswitch.common.type.DatabaseTypeEnum;
+import com.gitee.dbswitch.common.type.ProductTypeEnum;
import com.gitee.dbswitch.core.database.AbstractDatabase;
import com.gitee.dbswitch.core.database.IDatabaseInterface;
import com.gitee.dbswitch.core.database.constant.PostgresqlConst;
@@ -42,8 +42,8 @@ public class DatabaseKingbaseImpl extends AbstractDatabase implements IDatabaseI
}
@Override
- public DatabaseTypeEnum getDatabaseType() {
- return DatabaseTypeEnum.KINGBASE;
+ public ProductTypeEnum getDatabaseType() {
+ return ProductTypeEnum.KINGBASE;
}
@Override
diff --git a/dbswitch-core/src/main/java/com/gitee/dbswitch/core/database/impl/DatabaseMariaDBImpl.java b/dbswitch-core/src/main/java/com/gitee/dbswitch/core/database/impl/DatabaseMariaDBImpl.java
index 0dde3434..a83f9789 100644
--- a/dbswitch-core/src/main/java/com/gitee/dbswitch/core/database/impl/DatabaseMariaDBImpl.java
+++ b/dbswitch-core/src/main/java/com/gitee/dbswitch/core/database/impl/DatabaseMariaDBImpl.java
@@ -9,9 +9,7 @@
/////////////////////////////////////////////////////////////
package com.gitee.dbswitch.core.database.impl;
-import com.gitee.dbswitch.common.type.DatabaseTypeEnum;
-import com.gitee.dbswitch.core.model.ColumnDescription;
-import java.util.List;
+import com.gitee.dbswitch.common.type.ProductTypeEnum;
/**
* 支持MariaDB数据库的元信息实现
@@ -25,8 +23,8 @@ public class DatabaseMariaDBImpl extends DatabaseMysqlImpl {
}
@Override
- public DatabaseTypeEnum getDatabaseType() {
- return DatabaseTypeEnum.MARIADB;
+ public ProductTypeEnum getDatabaseType() {
+ return ProductTypeEnum.MARIADB;
}
}
diff --git a/dbswitch-core/src/main/java/com/gitee/dbswitch/core/database/impl/DatabaseMysqlImpl.java b/dbswitch-core/src/main/java/com/gitee/dbswitch/core/database/impl/DatabaseMysqlImpl.java
index 9a2707ab..adec1683 100644
--- a/dbswitch-core/src/main/java/com/gitee/dbswitch/core/database/impl/DatabaseMysqlImpl.java
+++ b/dbswitch-core/src/main/java/com/gitee/dbswitch/core/database/impl/DatabaseMysqlImpl.java
@@ -10,7 +10,7 @@
package com.gitee.dbswitch.core.database.impl;
import com.gitee.dbswitch.common.constant.Const;
-import com.gitee.dbswitch.common.type.DatabaseTypeEnum;
+import com.gitee.dbswitch.common.type.ProductTypeEnum;
import com.gitee.dbswitch.core.database.AbstractDatabase;
import com.gitee.dbswitch.core.database.IDatabaseInterface;
import com.gitee.dbswitch.core.model.ColumnDescription;
@@ -48,23 +48,19 @@ public class DatabaseMysqlImpl extends AbstractDatabase implements IDatabaseInte
}
@Override
- public DatabaseTypeEnum getDatabaseType() {
- return DatabaseTypeEnum.MYSQL;
+ public ProductTypeEnum getDatabaseType() {
+ return ProductTypeEnum.MYSQL;
}
@Override
public List querySchemaList(Connection connection) {
- String mysqlJdbcUrl = null;
try {
- mysqlJdbcUrl = connection.getMetaData().getURL();
+ String mysqlJdbcUrl = connection.getMetaData().getURL();
+ Map data = JdbcUrlUtils.findParamsByMySqlJdbcUrl(mysqlJdbcUrl);
+ return Collections.singletonList(data.get("schema"));
} catch (SQLException e) {
throw new RuntimeException(e);
}
-
- Map data = JdbcUrlUtils.findParamsByMySqlJdbcUrl(mysqlJdbcUrl);
- List ret = new ArrayList();
- ret.add(data.get("schema"));
- return ret;
}
@Override
diff --git a/dbswitch-core/src/main/java/com/gitee/dbswitch/core/database/impl/DatabaseOracleImpl.java b/dbswitch-core/src/main/java/com/gitee/dbswitch/core/database/impl/DatabaseOracleImpl.java
index 05eef23d..4bb224d8 100644
--- a/dbswitch-core/src/main/java/com/gitee/dbswitch/core/database/impl/DatabaseOracleImpl.java
+++ b/dbswitch-core/src/main/java/com/gitee/dbswitch/core/database/impl/DatabaseOracleImpl.java
@@ -10,7 +10,7 @@
package com.gitee.dbswitch.core.database.impl;
import com.gitee.dbswitch.common.constant.Const;
-import com.gitee.dbswitch.common.type.DatabaseTypeEnum;
+import com.gitee.dbswitch.common.type.ProductTypeEnum;
import com.gitee.dbswitch.core.database.AbstractDatabase;
import com.gitee.dbswitch.core.database.IDatabaseInterface;
import com.gitee.dbswitch.core.model.ColumnDescription;
@@ -23,7 +23,6 @@ import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.HashSet;
-import java.util.LinkedList;
import java.util.List;
import java.util.Set;
import org.apache.commons.lang3.StringUtils;
@@ -57,8 +56,8 @@ public class DatabaseOracleImpl extends AbstractDatabase implements IDatabaseInt
}
@Override
- public DatabaseTypeEnum getDatabaseType() {
- return DatabaseTypeEnum.ORACLE;
+ public ProductTypeEnum getDatabaseType() {
+ return ProductTypeEnum.ORACLE;
}
@Override
diff --git a/dbswitch-core/src/main/java/com/gitee/dbswitch/core/database/impl/DatabaseOscarImpl.java b/dbswitch-core/src/main/java/com/gitee/dbswitch/core/database/impl/DatabaseOscarImpl.java
index 74eac74f..c8165434 100644
--- a/dbswitch-core/src/main/java/com/gitee/dbswitch/core/database/impl/DatabaseOscarImpl.java
+++ b/dbswitch-core/src/main/java/com/gitee/dbswitch/core/database/impl/DatabaseOscarImpl.java
@@ -10,7 +10,7 @@
package com.gitee.dbswitch.core.database.impl;
import com.gitee.dbswitch.common.constant.Const;
-import com.gitee.dbswitch.common.type.DatabaseTypeEnum;
+import com.gitee.dbswitch.common.type.ProductTypeEnum;
import com.gitee.dbswitch.core.database.AbstractDatabase;
import com.gitee.dbswitch.core.database.IDatabaseInterface;
import com.gitee.dbswitch.core.model.ColumnDescription;
@@ -41,8 +41,8 @@ public class DatabaseOscarImpl extends AbstractDatabase implements IDatabaseInte
}
@Override
- public DatabaseTypeEnum getDatabaseType() {
- return DatabaseTypeEnum.OSCAR;
+ public ProductTypeEnum getDatabaseType() {
+ return ProductTypeEnum.OSCAR;
}
@Override
diff --git a/dbswitch-core/src/main/java/com/gitee/dbswitch/core/database/impl/DatabasePostgresImpl.java b/dbswitch-core/src/main/java/com/gitee/dbswitch/core/database/impl/DatabasePostgresImpl.java
index 3c1f5c73..07af6ba3 100644
--- a/dbswitch-core/src/main/java/com/gitee/dbswitch/core/database/impl/DatabasePostgresImpl.java
+++ b/dbswitch-core/src/main/java/com/gitee/dbswitch/core/database/impl/DatabasePostgresImpl.java
@@ -10,7 +10,7 @@
package com.gitee.dbswitch.core.database.impl;
import com.gitee.dbswitch.common.constant.Const;
-import com.gitee.dbswitch.common.type.DatabaseTypeEnum;
+import com.gitee.dbswitch.common.type.ProductTypeEnum;
import com.gitee.dbswitch.core.database.AbstractDatabase;
import com.gitee.dbswitch.core.database.IDatabaseInterface;
import com.gitee.dbswitch.core.database.constant.PostgresqlConst;
@@ -58,8 +58,8 @@ public class DatabasePostgresImpl extends AbstractDatabase implements IDatabaseI
}
@Override
- public DatabaseTypeEnum getDatabaseType() {
- return DatabaseTypeEnum.POSTGRESQL;
+ public ProductTypeEnum getDatabaseType() {
+ return ProductTypeEnum.POSTGRESQL;
}
@Override
diff --git a/dbswitch-core/src/main/java/com/gitee/dbswitch/core/database/impl/DatabaseSqliteImpl.java b/dbswitch-core/src/main/java/com/gitee/dbswitch/core/database/impl/DatabaseSqliteImpl.java
index 80db8d29..9818aa69 100644
--- a/dbswitch-core/src/main/java/com/gitee/dbswitch/core/database/impl/DatabaseSqliteImpl.java
+++ b/dbswitch-core/src/main/java/com/gitee/dbswitch/core/database/impl/DatabaseSqliteImpl.java
@@ -10,7 +10,7 @@
package com.gitee.dbswitch.core.database.impl;
import com.gitee.dbswitch.common.constant.Const;
-import com.gitee.dbswitch.common.type.DatabaseTypeEnum;
+import com.gitee.dbswitch.common.type.ProductTypeEnum;
import com.gitee.dbswitch.core.database.AbstractDatabase;
import com.gitee.dbswitch.core.database.IDatabaseInterface;
import com.gitee.dbswitch.core.model.ColumnDescription;
@@ -36,8 +36,8 @@ public class DatabaseSqliteImpl extends AbstractDatabase implements IDatabaseInt
}
@Override
- public DatabaseTypeEnum getDatabaseType() {
- return DatabaseTypeEnum.SQLITE3;
+ public ProductTypeEnum getDatabaseType() {
+ return ProductTypeEnum.SQLITE3;
}
@Override
diff --git a/dbswitch-core/src/main/java/com/gitee/dbswitch/core/database/impl/DatabaseSqlserver2000Impl.java b/dbswitch-core/src/main/java/com/gitee/dbswitch/core/database/impl/DatabaseSqlserver2000Impl.java
index da3cb687..88cb71c0 100644
--- a/dbswitch-core/src/main/java/com/gitee/dbswitch/core/database/impl/DatabaseSqlserver2000Impl.java
+++ b/dbswitch-core/src/main/java/com/gitee/dbswitch/core/database/impl/DatabaseSqlserver2000Impl.java
@@ -9,7 +9,7 @@
/////////////////////////////////////////////////////////////
package com.gitee.dbswitch.core.database.impl;
-import com.gitee.dbswitch.common.type.DatabaseTypeEnum;
+import com.gitee.dbswitch.common.type.ProductTypeEnum;
import com.gitee.dbswitch.core.database.IDatabaseInterface;
import com.gitee.dbswitch.core.model.ColumnDescription;
import com.gitee.dbswitch.core.model.TableDescription;
@@ -33,8 +33,8 @@ public class DatabaseSqlserver2000Impl extends DatabaseSqlserverImpl implements
}
@Override
- public DatabaseTypeEnum getDatabaseType() {
- return DatabaseTypeEnum.SQLSERVER2000;
+ public ProductTypeEnum getDatabaseType() {
+ return ProductTypeEnum.SQLSERVER2000;
}
@Override
diff --git a/dbswitch-core/src/main/java/com/gitee/dbswitch/core/database/impl/DatabaseSqlserverImpl.java b/dbswitch-core/src/main/java/com/gitee/dbswitch/core/database/impl/DatabaseSqlserverImpl.java
index f915f275..8ff93860 100644
--- a/dbswitch-core/src/main/java/com/gitee/dbswitch/core/database/impl/DatabaseSqlserverImpl.java
+++ b/dbswitch-core/src/main/java/com/gitee/dbswitch/core/database/impl/DatabaseSqlserverImpl.java
@@ -10,7 +10,7 @@
package com.gitee.dbswitch.core.database.impl;
import com.gitee.dbswitch.common.constant.Const;
-import com.gitee.dbswitch.common.type.DatabaseTypeEnum;
+import com.gitee.dbswitch.common.type.ProductTypeEnum;
import com.gitee.dbswitch.core.database.AbstractDatabase;
import com.gitee.dbswitch.core.database.IDatabaseInterface;
import com.gitee.dbswitch.core.database.constant.SQLServerConst;
@@ -63,8 +63,8 @@ public class DatabaseSqlserverImpl extends AbstractDatabase implements IDatabase
}
@Override
- public DatabaseTypeEnum getDatabaseType() {
- return DatabaseTypeEnum.SQLSERVER;
+ public ProductTypeEnum getDatabaseType() {
+ return ProductTypeEnum.SQLSERVER;
}
private int getDatabaseMajorVersion(Connection connection) {
diff --git a/dbswitch-core/src/main/java/com/gitee/dbswitch/core/database/impl/DatabaseSybaseImpl.java b/dbswitch-core/src/main/java/com/gitee/dbswitch/core/database/impl/DatabaseSybaseImpl.java
index 259df1c8..38fcf0fb 100644
--- a/dbswitch-core/src/main/java/com/gitee/dbswitch/core/database/impl/DatabaseSybaseImpl.java
+++ b/dbswitch-core/src/main/java/com/gitee/dbswitch/core/database/impl/DatabaseSybaseImpl.java
@@ -10,7 +10,7 @@
package com.gitee.dbswitch.core.database.impl;
import com.gitee.dbswitch.common.constant.Const;
-import com.gitee.dbswitch.common.type.DatabaseTypeEnum;
+import com.gitee.dbswitch.common.type.ProductTypeEnum;
import com.gitee.dbswitch.core.database.AbstractDatabase;
import com.gitee.dbswitch.core.database.IDatabaseInterface;
import com.gitee.dbswitch.core.model.ColumnDescription;
@@ -68,8 +68,8 @@ public class DatabaseSybaseImpl extends AbstractDatabase implements IDatabaseInt
}
@Override
- public DatabaseTypeEnum getDatabaseType() {
- return DatabaseTypeEnum.SYBASE;
+ public ProductTypeEnum getDatabaseType() {
+ return ProductTypeEnum.SYBASE;
}
private void setCatalogName(Connection connection){
@@ -118,7 +118,7 @@ public class DatabaseSybaseImpl extends AbstractDatabase implements IDatabaseInt
public String getTableDDL(Connection connection, String schemaName, String tableName) {
List columnDescriptions = queryTableColumnMeta(connection, schemaName, tableName);
List pks = queryTablePrimaryKeys(connection, schemaName, tableName);
- return GenerateSqlUtils.getDDLCreateTableSQL(DatabaseTypeEnum.SYBASE,
+ return GenerateSqlUtils.getDDLCreateTableSQL(ProductTypeEnum.SYBASE,
columnDescriptions, pks, schemaName, tableName, false);
}
diff --git a/dbswitch-core/src/main/java/com/gitee/dbswitch/core/model/ColumnDescription.java b/dbswitch-core/src/main/java/com/gitee/dbswitch/core/model/ColumnDescription.java
index 80db8ffd..c183f6ac 100644
--- a/dbswitch-core/src/main/java/com/gitee/dbswitch/core/model/ColumnDescription.java
+++ b/dbswitch-core/src/main/java/com/gitee/dbswitch/core/model/ColumnDescription.java
@@ -9,7 +9,7 @@
/////////////////////////////////////////////////////////////
package com.gitee.dbswitch.core.model;
-import com.gitee.dbswitch.common.type.DatabaseTypeEnum;
+import com.gitee.dbswitch.common.type.ProductTypeEnum;
/**
* 数据库列描述符信息定义(Column Description)
@@ -30,7 +30,7 @@ public class ColumnDescription {
private boolean isNullable;
private String remarks;
private boolean signed = false;
- private DatabaseTypeEnum dbtype;
+ private ProductTypeEnum dbtype;
public String getFieldName() {
if (null != this.fieldName) {
@@ -128,11 +128,11 @@ public class ColumnDescription {
this.signed = signed;
}
- public DatabaseTypeEnum getDbType() {
+ public ProductTypeEnum getDbType() {
return this.dbtype;
}
- public void setDbType(DatabaseTypeEnum dbtype) {
+ public void setDbType(ProductTypeEnum dbtype) {
this.dbtype = dbtype;
}
diff --git a/dbswitch-core/src/main/java/com/gitee/dbswitch/core/model/ColumnMetaData.java b/dbswitch-core/src/main/java/com/gitee/dbswitch/core/model/ColumnMetaData.java
index 102e5594..a73e4372 100644
--- a/dbswitch-core/src/main/java/com/gitee/dbswitch/core/model/ColumnMetaData.java
+++ b/dbswitch-core/src/main/java/com/gitee/dbswitch/core/model/ColumnMetaData.java
@@ -9,7 +9,7 @@
/////////////////////////////////////////////////////////////
package com.gitee.dbswitch.core.model;
-import com.gitee.dbswitch.common.type.DatabaseTypeEnum;
+import com.gitee.dbswitch.common.type.ProductTypeEnum;
import com.gitee.dbswitch.core.database.AbstractDatabase;
/**
@@ -349,7 +349,7 @@ public class ColumnMetaData {
}
// If we're dealing with PostgreSQL and double precision types
- if (desc.getDbType() == DatabaseTypeEnum.POSTGRESQL && type == java.sql.Types.DOUBLE
+ if (desc.getDbType() == ProductTypeEnum.POSTGRESQL && type == java.sql.Types.DOUBLE
&& precision >= 16
&& length >= 16) {
precision = -1;
@@ -358,7 +358,7 @@ public class ColumnMetaData {
// MySQL: max resolution is double precision floating point (double)
// The (12,31) that is given back is not correct
- if (desc.getDbType() == DatabaseTypeEnum.MYSQL) {
+ if (desc.getDbType() == ProductTypeEnum.MYSQL) {
if (precision >= length) {
precision = -1;
length = -1;
@@ -366,7 +366,7 @@ public class ColumnMetaData {
}
// If we're dealing with Hive and double/float precision types
- if (desc.getDbType() == DatabaseTypeEnum.HIVE) {
+ if (desc.getDbType() == ProductTypeEnum.HIVE) {
if (type == java.sql.Types.DOUBLE
&& precision >= 15
&& length >= 15) {
@@ -402,8 +402,8 @@ public class ColumnMetaData {
}
}
- if (desc.getDbType() == DatabaseTypeEnum.POSTGRESQL
- || desc.getDbType() == DatabaseTypeEnum.GREENPLUM) {
+ if (desc.getDbType() == ProductTypeEnum.POSTGRESQL
+ || desc.getDbType() == ProductTypeEnum.GREENPLUM) {
// undefined size => arbitrary precision
if (type == java.sql.Types.NUMERIC && length == 0 && precision == 0) {
valtype = ColumnMetaData.TYPE_BIGNUMBER;
@@ -412,7 +412,7 @@ public class ColumnMetaData {
}
}
- if (desc.getDbType() == DatabaseTypeEnum.ORACLE) {
+ if (desc.getDbType() == ProductTypeEnum.ORACLE) {
if (precision == 0 && length == 38) {
valtype = ColumnMetaData.TYPE_INTEGER;
}
diff --git a/dbswitch-core/src/main/java/com/gitee/dbswitch/core/model/DatabaseDescription.java b/dbswitch-core/src/main/java/com/gitee/dbswitch/core/model/DatabaseDescription.java
index c8b8c7c4..68f2525d 100644
--- a/dbswitch-core/src/main/java/com/gitee/dbswitch/core/model/DatabaseDescription.java
+++ b/dbswitch-core/src/main/java/com/gitee/dbswitch/core/model/DatabaseDescription.java
@@ -9,7 +9,7 @@
/////////////////////////////////////////////////////////////
package com.gitee.dbswitch.core.model;
-import com.gitee.dbswitch.common.type.DatabaseTypeEnum;
+import com.gitee.dbswitch.common.type.ProductTypeEnum;
/**
* 数据库连接描述符信息定义(Database Description)
@@ -18,7 +18,7 @@ import com.gitee.dbswitch.common.type.DatabaseTypeEnum;
*/
public class DatabaseDescription {
- protected DatabaseTypeEnum type;
+ protected ProductTypeEnum type;
protected String host;
protected int port;
/**
@@ -32,7 +32,7 @@ public class DatabaseDescription {
public DatabaseDescription(String dbtype, String host, int port, String mode, String dbname,
String charset, String username, String password) {
- this.type = DatabaseTypeEnum.valueOf(dbtype.toUpperCase());
+ this.type = ProductTypeEnum.valueOf(dbtype.toUpperCase());
this.host = host;
this.port = port;
this.mode = mode;
@@ -42,7 +42,7 @@ public class DatabaseDescription {
this.password = password;
}
- public DatabaseTypeEnum getType() {
+ public ProductTypeEnum getType() {
return type;
}
diff --git a/dbswitch-core/src/main/java/com/gitee/dbswitch/core/service/IMetaDataByDatasourceService.java b/dbswitch-core/src/main/java/com/gitee/dbswitch/core/service/IMetaDataByDatasourceService.java
index 587012f6..0344dc0d 100644
--- a/dbswitch-core/src/main/java/com/gitee/dbswitch/core/service/IMetaDataByDatasourceService.java
+++ b/dbswitch-core/src/main/java/com/gitee/dbswitch/core/service/IMetaDataByDatasourceService.java
@@ -1,6 +1,6 @@
package com.gitee.dbswitch.core.service;
-import com.gitee.dbswitch.common.type.DatabaseTypeEnum;
+import com.gitee.dbswitch.common.type.ProductTypeEnum;
import com.gitee.dbswitch.core.model.ColumnDescription;
import com.gitee.dbswitch.core.model.SchemaTableData;
import com.gitee.dbswitch.core.model.SchemaTableMeta;
@@ -131,7 +131,7 @@ public interface IMetaDataByDatasourceService {
* @param autoIncr 是否允许主键自增
* @return 对应数据库的DDL建表语句
*/
- List getDDLCreateTableSQL(DatabaseTypeEnum type, List fieldNames,
+ List getDDLCreateTableSQL(ProductTypeEnum type, List fieldNames,
List primaryKeys, String schemaName, String tableName, String tableRemarks,
boolean autoIncr);
}
diff --git a/dbswitch-core/src/main/java/com/gitee/dbswitch/core/service/IMetaDataByDescriptionService.java b/dbswitch-core/src/main/java/com/gitee/dbswitch/core/service/IMetaDataByDescriptionService.java
index 9bf2a016..38f88d86 100644
--- a/dbswitch-core/src/main/java/com/gitee/dbswitch/core/service/IMetaDataByDescriptionService.java
+++ b/dbswitch-core/src/main/java/com/gitee/dbswitch/core/service/IMetaDataByDescriptionService.java
@@ -9,7 +9,7 @@
/////////////////////////////////////////////////////////////
package com.gitee.dbswitch.core.service;
-import com.gitee.dbswitch.common.type.DatabaseTypeEnum;
+import com.gitee.dbswitch.common.type.ProductTypeEnum;
import com.gitee.dbswitch.core.model.ColumnDescription;
import com.gitee.dbswitch.core.model.DatabaseDescription;
import com.gitee.dbswitch.core.model.SchemaTableData;
@@ -126,6 +126,6 @@ public interface IMetaDataByDescriptionService {
* @param autoIncr 是否允许主键自增
* @return 对应数据库的DDL建表语句
*/
- String getDDLCreateTableSQL(DatabaseTypeEnum type, List fieldNames,
+ String getDDLCreateTableSQL(ProductTypeEnum type, List fieldNames,
List primaryKeys, String schemaName, String tableName, boolean autoIncr);
}
diff --git a/dbswitch-core/src/main/java/com/gitee/dbswitch/core/service/IMetaDataByJdbcService.java b/dbswitch-core/src/main/java/com/gitee/dbswitch/core/service/IMetaDataByJdbcService.java
index 0dd69edf..6116435d 100644
--- a/dbswitch-core/src/main/java/com/gitee/dbswitch/core/service/IMetaDataByJdbcService.java
+++ b/dbswitch-core/src/main/java/com/gitee/dbswitch/core/service/IMetaDataByJdbcService.java
@@ -9,7 +9,7 @@
/////////////////////////////////////////////////////////////
package com.gitee.dbswitch.core.service;
-import com.gitee.dbswitch.common.type.DatabaseTypeEnum;
+import com.gitee.dbswitch.common.type.ProductTypeEnum;
import com.gitee.dbswitch.core.model.ColumnDescription;
import com.gitee.dbswitch.core.model.SchemaTableData;
import com.gitee.dbswitch.core.model.SchemaTableMeta;
@@ -28,7 +28,7 @@ public interface IMetaDataByJdbcService {
*
* @return
*/
- DatabaseTypeEnum getDatabaseType();
+ ProductTypeEnum getDatabaseType();
/**
* 获取数据库的schema模式列表
@@ -165,6 +165,6 @@ public interface IMetaDataByJdbcService {
* @param autoIncr 是否允许主键自增
* @return 对应数据库的DDL建表语句
*/
- String getDDLCreateTableSQL(DatabaseTypeEnum type, List fieldNames,
+ String getDDLCreateTableSQL(ProductTypeEnum type, List fieldNames,
List primaryKeys, String schemaName, String tableName, boolean autoIncr);
}
diff --git a/dbswitch-core/src/main/java/com/gitee/dbswitch/core/service/impl/MetaDataByDataSourceServiceImpl.java b/dbswitch-core/src/main/java/com/gitee/dbswitch/core/service/impl/MetaDataByDataSourceServiceImpl.java
index 2f627b69..c15ed111 100644
--- a/dbswitch-core/src/main/java/com/gitee/dbswitch/core/service/impl/MetaDataByDataSourceServiceImpl.java
+++ b/dbswitch-core/src/main/java/com/gitee/dbswitch/core/service/impl/MetaDataByDataSourceServiceImpl.java
@@ -9,7 +9,7 @@
/////////////////////////////////////////////////////////////
package com.gitee.dbswitch.core.service.impl;
-import com.gitee.dbswitch.common.type.DatabaseTypeEnum;
+import com.gitee.dbswitch.common.type.ProductTypeEnum;
import com.gitee.dbswitch.common.util.DatabaseAwareUtils;
import com.gitee.dbswitch.core.database.AbstractDatabase;
import com.gitee.dbswitch.core.database.DatabaseFactory;
@@ -40,7 +40,7 @@ public class MetaDataByDataSourceServiceImpl implements IMetaDataByDatasourceSer
this(dataSource, DatabaseAwareUtils.getDatabaseTypeByDataSource(dataSource));
}
- public MetaDataByDataSourceServiceImpl(DataSource dataSource, DatabaseTypeEnum type) {
+ public MetaDataByDataSourceServiceImpl(DataSource dataSource, ProductTypeEnum type) {
this.dataSource = dataSource;
this.database = DatabaseFactory.getDatabaseInstance(type);
}
@@ -188,7 +188,7 @@ public class MetaDataByDataSourceServiceImpl implements IMetaDataByDatasourceSer
}
@Override
- public List getDDLCreateTableSQL(DatabaseTypeEnum type,
+ public List getDDLCreateTableSQL(ProductTypeEnum type,
List fieldNames, List primaryKeys, String schemaName,
String tableName, String tableRemarks, boolean autoIncr) {
return GenerateSqlUtils.getDDLCreateTableSQL(
diff --git a/dbswitch-core/src/main/java/com/gitee/dbswitch/core/service/impl/MetaDataByDescriptionServiceImpl.java b/dbswitch-core/src/main/java/com/gitee/dbswitch/core/service/impl/MetaDataByDescriptionServiceImpl.java
index f4747988..ba139472 100644
--- a/dbswitch-core/src/main/java/com/gitee/dbswitch/core/service/impl/MetaDataByDescriptionServiceImpl.java
+++ b/dbswitch-core/src/main/java/com/gitee/dbswitch/core/service/impl/MetaDataByDescriptionServiceImpl.java
@@ -9,7 +9,7 @@
/////////////////////////////////////////////////////////////
package com.gitee.dbswitch.core.service.impl;
-import com.gitee.dbswitch.common.type.DatabaseTypeEnum;
+import com.gitee.dbswitch.common.type.ProductTypeEnum;
import com.gitee.dbswitch.core.database.AbstractDatabase;
import com.gitee.dbswitch.core.database.DatabaseFactory;
import com.gitee.dbswitch.core.model.ColumnDescription;
@@ -204,7 +204,7 @@ public class MetaDataByDescriptionServiceImpl implements IMetaDataByDescriptionS
}
@Override
- public String getDDLCreateTableSQL(DatabaseTypeEnum type, List fieldNames,
+ public String getDDLCreateTableSQL(ProductTypeEnum type, List fieldNames,
List primaryKeys, String schemaName, String tableName, boolean autoIncr) {
return GenerateSqlUtils.getDDLCreateTableSQL(
type, fieldNames, primaryKeys, schemaName, tableName, autoIncr);
diff --git a/dbswitch-core/src/main/java/com/gitee/dbswitch/core/service/impl/MetaDataByJdbcServiceImpl.java b/dbswitch-core/src/main/java/com/gitee/dbswitch/core/service/impl/MetaDataByJdbcServiceImpl.java
index 8bf35f24..8a1c0dd8 100644
--- a/dbswitch-core/src/main/java/com/gitee/dbswitch/core/service/impl/MetaDataByJdbcServiceImpl.java
+++ b/dbswitch-core/src/main/java/com/gitee/dbswitch/core/service/impl/MetaDataByJdbcServiceImpl.java
@@ -9,7 +9,7 @@
/////////////////////////////////////////////////////////////
package com.gitee.dbswitch.core.service.impl;
-import com.gitee.dbswitch.common.type.DatabaseTypeEnum;
+import com.gitee.dbswitch.common.type.ProductTypeEnum;
import com.gitee.dbswitch.core.database.AbstractDatabase;
import com.gitee.dbswitch.core.database.DatabaseFactory;
import com.gitee.dbswitch.core.model.ColumnDescription;
@@ -31,16 +31,16 @@ import java.util.List;
*/
public class MetaDataByJdbcServiceImpl implements IMetaDataByJdbcService {
- protected DatabaseTypeEnum dbType;
+ protected ProductTypeEnum dbType;
protected AbstractDatabase database;
- public MetaDataByJdbcServiceImpl(DatabaseTypeEnum type) {
+ public MetaDataByJdbcServiceImpl(ProductTypeEnum type) {
this.dbType = type;
this.database = DatabaseFactory.getDatabaseInstance(type);
}
@Override
- public DatabaseTypeEnum getDatabaseType() {
+ public ProductTypeEnum getDatabaseType() {
return this.dbType;
}
@@ -170,7 +170,7 @@ public class MetaDataByJdbcServiceImpl implements IMetaDataByJdbcService {
}
@Override
- public String getDDLCreateTableSQL(DatabaseTypeEnum type, List fieldNames,
+ public String getDDLCreateTableSQL(ProductTypeEnum type, List fieldNames,
List primaryKeys, String schemaName, String tableName, boolean autoIncr) {
return GenerateSqlUtils.getDDLCreateTableSQL(
type, fieldNames, primaryKeys, schemaName, tableName, autoIncr);
diff --git a/dbswitch-core/src/main/java/com/gitee/dbswitch/core/util/GenerateSqlUtils.java b/dbswitch-core/src/main/java/com/gitee/dbswitch/core/util/GenerateSqlUtils.java
index ea28082b..fb3ece6b 100644
--- a/dbswitch-core/src/main/java/com/gitee/dbswitch/core/util/GenerateSqlUtils.java
+++ b/dbswitch-core/src/main/java/com/gitee/dbswitch/core/util/GenerateSqlUtils.java
@@ -10,7 +10,7 @@
package com.gitee.dbswitch.core.util;
import com.gitee.dbswitch.common.constant.Const;
-import com.gitee.dbswitch.common.type.DatabaseTypeEnum;
+import com.gitee.dbswitch.common.type.ProductTypeEnum;
import com.gitee.dbswitch.core.database.AbstractDatabase;
import com.gitee.dbswitch.core.database.DatabaseFactory;
import com.gitee.dbswitch.core.model.ColumnDescription;
@@ -29,7 +29,7 @@ import org.apache.commons.lang3.StringUtils;
public final class GenerateSqlUtils {
public static String getDDLCreateTableSQL(
- DatabaseTypeEnum type,
+ ProductTypeEnum type,
List fieldNames,
List primaryKeys,
String schemaName,
@@ -56,7 +56,7 @@ public final class GenerateSqlUtils {
boolean withRemarks,
String tableRemarks,
boolean autoIncr) {
- DatabaseTypeEnum type = db.getDatabaseType();
+ ProductTypeEnum type = db.getDatabaseType();
StringBuilder sb = new StringBuilder();
List pks = fieldNames.stream()
.filter((cd) -> primaryKeys.contains(cd.getFieldName()))
@@ -87,7 +87,7 @@ public final class GenerateSqlUtils {
}
sb.append(")");
- if (DatabaseTypeEnum.MYSQL == type) {
+ if (ProductTypeEnum.MYSQL == type) {
sb.append("ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin");
if (withRemarks && StringUtils.isNotBlank(tableRemarks)) {
sb.append(String.format(" COMMENT='%s' ", tableRemarks.replace("'", "\\'")));
@@ -98,7 +98,7 @@ public final class GenerateSqlUtils {
}
public static List getDDLCreateTableSQL(
- DatabaseTypeEnum type,
+ ProductTypeEnum type,
List fieldNames,
List primaryKeys,
String schemaName,
diff --git a/dbswitch-core/src/main/java/com/gitee/dbswitch/core/util/PostgresUtils.java b/dbswitch-core/src/main/java/com/gitee/dbswitch/core/util/PostgresUtils.java
index d2defbce..5f8edf03 100644
--- a/dbswitch-core/src/main/java/com/gitee/dbswitch/core/util/PostgresUtils.java
+++ b/dbswitch-core/src/main/java/com/gitee/dbswitch/core/util/PostgresUtils.java
@@ -1,6 +1,6 @@
package com.gitee.dbswitch.core.util;
-import com.gitee.dbswitch.common.type.DatabaseTypeEnum;
+import com.gitee.dbswitch.common.type.ProductTypeEnum;
import com.gitee.dbswitch.core.database.AbstractDatabase;
import com.gitee.dbswitch.core.database.DatabaseFactory;
import com.gitee.dbswitch.core.model.ColumnDescription;
@@ -10,7 +10,7 @@ import java.util.List;
public final class PostgresUtils {
public static String getTableDDL(Connection connection, String schema, String table) {
- AbstractDatabase db = DatabaseFactory.getDatabaseInstance(DatabaseTypeEnum.POSTGRESQL);
+ AbstractDatabase db = DatabaseFactory.getDatabaseInstance(ProductTypeEnum.POSTGRESQL);
List columnDescriptions = db.queryTableColumnMeta(connection, schema, table);
List pks = db.queryTablePrimaryKeys(connection, schema, table);
return GenerateSqlUtils.getDDLCreateTableSQL(
diff --git a/dbswitch-data/src/main/java/com/gitee/dbswitch/data/entity/SourceDataSourceProperties.java b/dbswitch-data/src/main/java/com/gitee/dbswitch/data/entity/SourceDataSourceProperties.java
index 2881407b..ce9874ed 100644
--- a/dbswitch-data/src/main/java/com/gitee/dbswitch/data/entity/SourceDataSourceProperties.java
+++ b/dbswitch-data/src/main/java/com/gitee/dbswitch/data/entity/SourceDataSourceProperties.java
@@ -10,6 +10,7 @@
package com.gitee.dbswitch.data.entity;
import com.gitee.dbswitch.common.entity.PatternMapper;
+import com.gitee.dbswitch.common.type.DBTableType;
import java.util.List;
import java.util.concurrent.TimeUnit;
import lombok.Data;
@@ -26,6 +27,7 @@ public class SourceDataSourceProperties {
private Integer fetchSize = 5000;
private String sourceSchema = "";
+ private String tableType = "TABLE";
private String sourceIncludes = "";
private String sourceExcludes = "";
private List regexTableMapper;
diff --git a/dbswitch-data/src/main/java/com/gitee/dbswitch/data/handler/MigrationHandler.java b/dbswitch-data/src/main/java/com/gitee/dbswitch/data/handler/MigrationHandler.java
index 87db6040..5365b460 100644
--- a/dbswitch-data/src/main/java/com/gitee/dbswitch/data/handler/MigrationHandler.java
+++ b/dbswitch-data/src/main/java/com/gitee/dbswitch/data/handler/MigrationHandler.java
@@ -9,7 +9,7 @@
/////////////////////////////////////////////////////////////
package com.gitee.dbswitch.data.handler;
-import com.gitee.dbswitch.common.type.DatabaseTypeEnum;
+import com.gitee.dbswitch.common.type.ProductTypeEnum;
import com.gitee.dbswitch.common.util.DatabaseAwareUtils;
import com.gitee.dbswitch.common.util.PatterNameUtils;
import com.gitee.dbswitch.core.model.ColumnDescription;
@@ -64,7 +64,7 @@ public class MigrationHandler implements Supplier {
// 来源端
private final HikariDataSource sourceDataSource;
- private DatabaseTypeEnum sourceProductType;
+ private ProductTypeEnum sourceProductType;
private String sourceSchemaName;
private String sourceTableName;
private String sourceTableRemarks;
@@ -75,7 +75,7 @@ public class MigrationHandler implements Supplier {
// 目的端
private final HikariDataSource targetDataSource;
- private DatabaseTypeEnum targetProductType;
+ private ProductTypeEnum targetProductType;
private String targetSchemaName;
private String targetTableName;
private List targetColumnDescriptions;
@@ -247,7 +247,7 @@ public class MigrationHandler implements Supplier {
if (!targetPrimaryKeys.isEmpty() && !dbTargetPks.isEmpty()
&& targetPrimaryKeys.containsAll(dbTargetPks)
&& dbTargetPks.containsAll(targetPrimaryKeys)) {
- if (targetProductType == DatabaseTypeEnum.MYSQL
+ if (targetProductType == ProductTypeEnum.MYSQL
&& !DatabaseAwareUtils.isMysqlInnodbStorageEngine(
targetSchemaName, targetTableName, targetDataSource)) {
return doFullCoverSynchronize(writer);
diff --git a/dbswitch-data/src/main/java/com/gitee/dbswitch/data/service/MigrationService.java b/dbswitch-data/src/main/java/com/gitee/dbswitch/data/service/MigrationService.java
index b1c7c802..7577f93b 100644
--- a/dbswitch-data/src/main/java/com/gitee/dbswitch/data/service/MigrationService.java
+++ b/dbswitch-data/src/main/java/com/gitee/dbswitch/data/service/MigrationService.java
@@ -33,6 +33,7 @@ import java.util.regex.Pattern;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.util.StopWatch;
+import org.springframework.util.StringUtils;
/**
* 数据迁移主逻辑类
@@ -119,10 +120,13 @@ public class MigrationService {
if (tableList.isEmpty()) {
log.warn("### Find source database table list empty for schema name is : {}", schema);
} else {
+ String allTableType = sourceProperties.getTableType();
for (TableDescription td : tableList) {
- // 当没有配置迁移的表是,默认为所有物理表(不含有视图表)
- if (includes.isEmpty() && DBTableType.VIEW.name().equals(td.getTableType())) {
- continue;
+ // 当没有配置迁移的表名时,默认为根据类型同步所有
+ if (includes.isEmpty()) {
+ if (null != allTableType && !allTableType.equals(td.getTableType())) {
+ continue;
+ }
}
String tableName = td.getTableName();
diff --git a/dbswitch-data/src/main/resources/config.yml b/dbswitch-data/src/main/resources/config.yml
index 75b47e2a..d1fab021 100644
--- a/dbswitch-data/src/main/resources/config.yml
+++ b/dbswitch-data/src/main/resources/config.yml
@@ -1,8 +1,8 @@
dbswitch:
source:
# source database connection information
- ## support MySQL/MariaDB/DB2/DM/Kingbase8/Oracle/SQLServer/PostgreSQL/Greenplum
- ## support mutiple source database connection
+ ## support MySQL/MariaDB/DB2/DM/Kingbase8/Oracle/SQLServer/PostgreSQL/Greenplum etc.
+ ## support multiple source database connection
- url: jdbc:oracle:thin:@172.17.2.10:1521:ORCL
driver-class-name: 'oracle.jdbc.driver.OracleDriver'
username: 'system'
@@ -12,20 +12,22 @@ dbswitch:
fetch-size: 10000
## schema name for query source schemas, separate by ','
source-schema: 'TANG'
+ ## table type which include or exclude,option: TABLE,VIEW
+ table-type: 'TABLE'
## table name include from table lists, separate by ','
source-includes: ''
## table name exclude from table lists, separate by ','
source-excludes: ''
## table name convert mapper by regular expression
regex-table-mapper:
- - 'from-pattern': '^'
- 'to-value': 'T_'
+ - from-pattern: '^'
+ to-value: 'T_'
## columns name convert mapper by regular expression like regex-table-mapper
regex-column-mapper:
target:
# target database connection information
- ## Best support for Oracle/PostgreSQL/Greenplum/DM/Kingbase8
+ ## Best support for Oracle/PostgreSQL/Greenplum/DM etc.
url: jdbc:postgresql://172.17.2.10:5432/test
driver-class-name: org.postgresql.Driver
username: tang
diff --git a/dbswitch-dbcommon/src/main/java/com/gitee/dbswitch/dbcommon/database/DatabaseOperatorFactory.java b/dbswitch-dbcommon/src/main/java/com/gitee/dbswitch/dbcommon/database/DatabaseOperatorFactory.java
index 0b3de2e0..e0662e41 100644
--- a/dbswitch-dbcommon/src/main/java/com/gitee/dbswitch/dbcommon/database/DatabaseOperatorFactory.java
+++ b/dbswitch-dbcommon/src/main/java/com/gitee/dbswitch/dbcommon/database/DatabaseOperatorFactory.java
@@ -9,7 +9,7 @@
/////////////////////////////////////////////////////////////
package com.gitee.dbswitch.dbcommon.database;
-import com.gitee.dbswitch.common.type.DatabaseTypeEnum;
+import com.gitee.dbswitch.common.type.ProductTypeEnum;
import com.gitee.dbswitch.common.util.DatabaseAwareUtils;
import com.gitee.dbswitch.dbcommon.database.impl.DB2DatabaseOperator;
import com.gitee.dbswitch.dbcommon.database.impl.DmDatabaseOperator;
@@ -35,27 +35,27 @@ import javax.sql.DataSource;
*/
public final class DatabaseOperatorFactory {
- private static final Map> DATABASE_OPERATOR_MAPPER
- = new HashMap>() {
+ private static final Map> DATABASE_OPERATOR_MAPPER
+ = new HashMap>() {
private static final long serialVersionUID = -5278835613240515265L;
{
- put(DatabaseTypeEnum.MYSQL, MysqlDatabaseOperator::new);
- put(DatabaseTypeEnum.MARIADB, MysqlDatabaseOperator::new);
- put(DatabaseTypeEnum.ORACLE, OracleDatabaseOperator::new);
- put(DatabaseTypeEnum.SQLSERVER, SqlServerDatabaseOperator::new);
- put(DatabaseTypeEnum.SQLSERVER2000, SqlServerDatabaseOperator::new);
- put(DatabaseTypeEnum.POSTGRESQL, PostgreSqlDatabaseOperator::new);
- put(DatabaseTypeEnum.GREENPLUM, GreenplumDatabaseOperator::new);
- put(DatabaseTypeEnum.DB2, DB2DatabaseOperator::new);
- put(DatabaseTypeEnum.DM, DmDatabaseOperator::new);
- put(DatabaseTypeEnum.SYBASE, SybaseDatabaseOperator::new);
- put(DatabaseTypeEnum.KINGBASE, KingbaseDatabaseOperator::new);
- put(DatabaseTypeEnum.OSCAR, OscarDatabaseOperator::new);
- put(DatabaseTypeEnum.GBASE8A, MysqlDatabaseOperator::new);
- put(DatabaseTypeEnum.HIVE, HiveDatabaseOperator::new);
- put(DatabaseTypeEnum.SQLITE3, SqliteDatabaseOperator::new);
+ put(ProductTypeEnum.MYSQL, MysqlDatabaseOperator::new);
+ put(ProductTypeEnum.MARIADB, MysqlDatabaseOperator::new);
+ put(ProductTypeEnum.ORACLE, OracleDatabaseOperator::new);
+ put(ProductTypeEnum.SQLSERVER, SqlServerDatabaseOperator::new);
+ put(ProductTypeEnum.SQLSERVER2000, SqlServerDatabaseOperator::new);
+ put(ProductTypeEnum.POSTGRESQL, PostgreSqlDatabaseOperator::new);
+ put(ProductTypeEnum.GREENPLUM, GreenplumDatabaseOperator::new);
+ put(ProductTypeEnum.DB2, DB2DatabaseOperator::new);
+ put(ProductTypeEnum.DM, DmDatabaseOperator::new);
+ put(ProductTypeEnum.SYBASE, SybaseDatabaseOperator::new);
+ put(ProductTypeEnum.KINGBASE, KingbaseDatabaseOperator::new);
+ put(ProductTypeEnum.OSCAR, OscarDatabaseOperator::new);
+ put(ProductTypeEnum.GBASE8A, MysqlDatabaseOperator::new);
+ put(ProductTypeEnum.HIVE, HiveDatabaseOperator::new);
+ put(ProductTypeEnum.SQLITE3, SqliteDatabaseOperator::new);
}
};
@@ -66,7 +66,7 @@ public final class DatabaseOperatorFactory {
* @return 指定类型的数据库读取器
*/
public static IDatabaseOperator createDatabaseOperator(DataSource dataSource) {
- DatabaseTypeEnum type = DatabaseAwareUtils.getDatabaseTypeByDataSource(dataSource);
+ ProductTypeEnum type = DatabaseAwareUtils.getDatabaseTypeByDataSource(dataSource);
if (!DATABASE_OPERATOR_MAPPER.containsKey(type)) {
throw new RuntimeException(
String.format("[dbcommon] Unsupported database type (%s)", type));
diff --git a/dbswitch-dbsynch/src/main/java/com/gitee/dbswitch/dbsynch/DatabaseSynchronizeFactory.java b/dbswitch-dbsynch/src/main/java/com/gitee/dbswitch/dbsynch/DatabaseSynchronizeFactory.java
index 0ca173e3..2540c291 100644
--- a/dbswitch-dbsynch/src/main/java/com/gitee/dbswitch/dbsynch/DatabaseSynchronizeFactory.java
+++ b/dbswitch-dbsynch/src/main/java/com/gitee/dbswitch/dbsynch/DatabaseSynchronizeFactory.java
@@ -9,7 +9,7 @@
/////////////////////////////////////////////////////////////
package com.gitee.dbswitch.dbsynch;
-import com.gitee.dbswitch.common.type.DatabaseTypeEnum;
+import com.gitee.dbswitch.common.type.ProductTypeEnum;
import com.gitee.dbswitch.common.util.DatabaseAwareUtils;
import com.gitee.dbswitch.dbsynch.db2.DB2DatabaseSyncImpl;
import com.gitee.dbswitch.dbsynch.dm.DmDatabaseSyncImpl;
@@ -34,26 +34,26 @@ import javax.sql.DataSource;
*/
public final class DatabaseSynchronizeFactory {
- private static final Map> DATABASE_SYNC_MAPPER
- = new HashMap>() {
+ private static final Map> DATABASE_SYNC_MAPPER
+ = new HashMap>() {
private static final long serialVersionUID = -2359773637275934408L;
{
- put(DatabaseTypeEnum.MYSQL, MySqlDatabaseSyncImpl::new);
- put(DatabaseTypeEnum.MARIADB, MySqlDatabaseSyncImpl::new);
- put(DatabaseTypeEnum.ORACLE, OracleDatabaseSyncImpl::new);
- put(DatabaseTypeEnum.SQLSERVER, SqlServerDatabaseSyncImpl::new);
- put(DatabaseTypeEnum.SQLSERVER2000, SqlServerDatabaseSyncImpl::new);
- put(DatabaseTypeEnum.POSTGRESQL, PostgresqlDatabaseSyncImpl::new);
- put(DatabaseTypeEnum.GREENPLUM, GreenplumDatabaseSyncImpl::new);
- put(DatabaseTypeEnum.DB2, DB2DatabaseSyncImpl::new);
- put(DatabaseTypeEnum.DM, DmDatabaseSyncImpl::new);
- put(DatabaseTypeEnum.SYBASE, SybaseDatabaseSyncImpl::new);
- put(DatabaseTypeEnum.KINGBASE, KingbaseDatabaseSyncImpl::new);
- put(DatabaseTypeEnum.OSCAR, OscarDatabaseSyncImpl::new);
- put(DatabaseTypeEnum.GBASE8A, MySqlDatabaseSyncImpl::new);
- put(DatabaseTypeEnum.SQLITE3, Sqlite3DatabaseSyncImpl::new);
+ put(ProductTypeEnum.MYSQL, MySqlDatabaseSyncImpl::new);
+ put(ProductTypeEnum.MARIADB, MySqlDatabaseSyncImpl::new);
+ put(ProductTypeEnum.ORACLE, OracleDatabaseSyncImpl::new);
+ put(ProductTypeEnum.SQLSERVER, SqlServerDatabaseSyncImpl::new);
+ put(ProductTypeEnum.SQLSERVER2000, SqlServerDatabaseSyncImpl::new);
+ put(ProductTypeEnum.POSTGRESQL, PostgresqlDatabaseSyncImpl::new);
+ put(ProductTypeEnum.GREENPLUM, GreenplumDatabaseSyncImpl::new);
+ put(ProductTypeEnum.DB2, DB2DatabaseSyncImpl::new);
+ put(ProductTypeEnum.DM, DmDatabaseSyncImpl::new);
+ put(ProductTypeEnum.SYBASE, SybaseDatabaseSyncImpl::new);
+ put(ProductTypeEnum.KINGBASE, KingbaseDatabaseSyncImpl::new);
+ put(ProductTypeEnum.OSCAR, OscarDatabaseSyncImpl::new);
+ put(ProductTypeEnum.GBASE8A, MySqlDatabaseSyncImpl::new);
+ put(ProductTypeEnum.SQLITE3, Sqlite3DatabaseSyncImpl::new);
}
};
@@ -64,7 +64,7 @@ public final class DatabaseSynchronizeFactory {
* @return 同步器对象
*/
public static IDatabaseSynchronize createDatabaseWriter(DataSource dataSource) {
- DatabaseTypeEnum type = DatabaseAwareUtils.getDatabaseTypeByDataSource(dataSource);
+ ProductTypeEnum type = DatabaseAwareUtils.getDatabaseTypeByDataSource(dataSource);
if (!DATABASE_SYNC_MAPPER.containsKey(type)) {
throw new RuntimeException(
String.format("[dbsynch] Unsupported database type (%s)", type));
diff --git a/dbswitch-dbwriter/src/main/java/com/gitee/dbswitch/dbwriter/DatabaseWriterFactory.java b/dbswitch-dbwriter/src/main/java/com/gitee/dbswitch/dbwriter/DatabaseWriterFactory.java
index 9acc5f02..1ace7490 100644
--- a/dbswitch-dbwriter/src/main/java/com/gitee/dbswitch/dbwriter/DatabaseWriterFactory.java
+++ b/dbswitch-dbwriter/src/main/java/com/gitee/dbswitch/dbwriter/DatabaseWriterFactory.java
@@ -9,7 +9,7 @@
/////////////////////////////////////////////////////////////
package com.gitee.dbswitch.dbwriter;
-import com.gitee.dbswitch.common.type.DatabaseTypeEnum;
+import com.gitee.dbswitch.common.type.ProductTypeEnum;
import com.gitee.dbswitch.common.util.DatabaseAwareUtils;
import com.gitee.dbswitch.dbwriter.db2.DB2WriterImpl;
import com.gitee.dbswitch.dbwriter.dm.DmWriterImpl;
@@ -33,27 +33,27 @@ import javax.sql.DataSource;
*/
public class DatabaseWriterFactory {
- private static final Map> DATABASE_WRITER_MAPPER
- = new HashMap>() {
+ private static final Map> DATABASE_WRITER_MAPPER
+ = new HashMap>() {
private static final long serialVersionUID = 3365136872693503697L;
{
- put(DatabaseTypeEnum.MYSQL, MySqlWriterImpl::new);
- put(DatabaseTypeEnum.MARIADB, MySqlWriterImpl::new);
- put(DatabaseTypeEnum.ORACLE, OracleWriterImpl::new);
- put(DatabaseTypeEnum.SQLSERVER, SqlServerWriterImpl::new);
- put(DatabaseTypeEnum.SQLSERVER2000, SqlServerWriterImpl::new);
- put(DatabaseTypeEnum.POSTGRESQL, GreenplumCopyWriterImpl::new);
- put(DatabaseTypeEnum.GREENPLUM, GreenplumCopyWriterImpl::new);
- put(DatabaseTypeEnum.DB2, DB2WriterImpl::new);
- put(DatabaseTypeEnum.DM, DmWriterImpl::new);
- put(DatabaseTypeEnum.SYBASE, SybaseWriterImpl::new);
+ put(ProductTypeEnum.MYSQL, MySqlWriterImpl::new);
+ put(ProductTypeEnum.MARIADB, MySqlWriterImpl::new);
+ put(ProductTypeEnum.ORACLE, OracleWriterImpl::new);
+ put(ProductTypeEnum.SQLSERVER, SqlServerWriterImpl::new);
+ put(ProductTypeEnum.SQLSERVER2000, SqlServerWriterImpl::new);
+ put(ProductTypeEnum.POSTGRESQL, GreenplumCopyWriterImpl::new);
+ put(ProductTypeEnum.GREENPLUM, GreenplumCopyWriterImpl::new);
+ put(ProductTypeEnum.DB2, DB2WriterImpl::new);
+ put(ProductTypeEnum.DM, DmWriterImpl::new);
+ put(ProductTypeEnum.SYBASE, SybaseWriterImpl::new);
//对于kingbase当前只能使用insert模式
- put(DatabaseTypeEnum.KINGBASE, KingbaseInsertWriterImpl::new);
- put(DatabaseTypeEnum.OSCAR, OscarWriterImpl::new);
- put(DatabaseTypeEnum.GBASE8A, MySqlWriterImpl::new);
- put(DatabaseTypeEnum.SQLITE3, Sqlite3WriterImpl::new);
+ put(ProductTypeEnum.KINGBASE, KingbaseInsertWriterImpl::new);
+ put(ProductTypeEnum.OSCAR, OscarWriterImpl::new);
+ put(ProductTypeEnum.GBASE8A, MySqlWriterImpl::new);
+ put(ProductTypeEnum.SQLITE3, Sqlite3WriterImpl::new);
}
};
@@ -75,9 +75,9 @@ public class DatabaseWriterFactory {
* @return 写入器对象
*/
public static IDatabaseWriter createDatabaseWriter(DataSource dataSource, boolean insert) {
- DatabaseTypeEnum type = DatabaseAwareUtils.getDatabaseTypeByDataSource(dataSource);
+ ProductTypeEnum type = DatabaseAwareUtils.getDatabaseTypeByDataSource(dataSource);
if (insert) {
- if (DatabaseTypeEnum.POSTGRESQL.equals(type) || DatabaseTypeEnum.GREENPLUM.equals(type)) {
+ if (ProductTypeEnum.POSTGRESQL.equals(type) || ProductTypeEnum.GREENPLUM.equals(type)) {
return new com.gitee.dbswitch.dbwriter.gpdb.GreenplumInsertWriterImpl(dataSource);
}
}
diff --git a/dbswitch-sql/src/main/java/com/gitee/dbswitch/sql/service/ISqlConvertService.java b/dbswitch-sql/src/main/java/com/gitee/dbswitch/sql/service/ISqlConvertService.java
index c77081ad..0429ffc7 100644
--- a/dbswitch-sql/src/main/java/com/gitee/dbswitch/sql/service/ISqlConvertService.java
+++ b/dbswitch-sql/src/main/java/com/gitee/dbswitch/sql/service/ISqlConvertService.java
@@ -10,7 +10,7 @@
package com.gitee.dbswitch.sql.service;
import java.util.Map;
-import com.gitee.dbswitch.common.type.DatabaseTypeEnum;
+import com.gitee.dbswitch.common.type.ProductTypeEnum;
/**
* SQL语言共分为四大类:数据查询语言DQL,数据操纵语言DML,数据定义语言DDL,数据控制语言DCL
@@ -34,7 +34,7 @@ public interface ISqlConvertService {
* @param sql 待转换的SQL语句
* @return 转换为指定数据库类型后的SQL语句
*/
- public String dmlSentence(String sql, DatabaseTypeEnum target);
+ public String dmlSentence(String sql, ProductTypeEnum target);
/**
* 指定源数据库到目的数据库的DQL/DML类SQL的转换
@@ -44,7 +44,7 @@ public interface ISqlConvertService {
* @param sql 待转换的SQL语句
* @return 转换为目的数据库类型后的SQL语句
*/
- public String dmlSentence(DatabaseTypeEnum source, DatabaseTypeEnum target, String sql);
+ public String dmlSentence(ProductTypeEnum source, ProductTypeEnum target, String sql);
/**
* 标准DDL类SQL的转换
@@ -60,7 +60,7 @@ public interface ISqlConvertService {
* @param sql 待转换的SQL语句
* @return 转换为指定数据库类型后的SQL语句
*/
- public String ddlSentence(String sql, DatabaseTypeEnum target);
+ public String ddlSentence(String sql, ProductTypeEnum target);
/**
* 指定源数据库到目的数据库的DDL类SQL的转换
@@ -70,7 +70,7 @@ public interface ISqlConvertService {
* @param sql 待转换的SQL语句
* @return 转换为目的数据库类型后的SQL语句
*/
- public String ddlSentence(DatabaseTypeEnum source, DatabaseTypeEnum target, String sql);
+ public String ddlSentence(ProductTypeEnum source, ProductTypeEnum target, String sql);
/**
* 标准DCL类SQL的转换
@@ -88,5 +88,5 @@ public interface ISqlConvertService {
* @param sql 待转换的SQL语句
* @return 转换为目的数据库类型后的SQL语句
*/
- public String dclSentence(DatabaseTypeEnum source, DatabaseTypeEnum target, String sql);
+ public String dclSentence(ProductTypeEnum source, ProductTypeEnum target, String sql);
}
diff --git a/dbswitch-sql/src/main/java/com/gitee/dbswitch/sql/service/impl/CalciteSqlConvertServiceImpl.java b/dbswitch-sql/src/main/java/com/gitee/dbswitch/sql/service/impl/CalciteSqlConvertServiceImpl.java
index 5ef094fb..ae4335f6 100644
--- a/dbswitch-sql/src/main/java/com/gitee/dbswitch/sql/service/impl/CalciteSqlConvertServiceImpl.java
+++ b/dbswitch-sql/src/main/java/com/gitee/dbswitch/sql/service/impl/CalciteSqlConvertServiceImpl.java
@@ -23,7 +23,7 @@ import com.gitee.dbswitch.sql.calcite.TheMssqlSqlDialect;
import com.gitee.dbswitch.sql.calcite.TheMysqlSqlDialect;
import com.gitee.dbswitch.sql.calcite.TheOracleSqlDialect;
import com.gitee.dbswitch.sql.calcite.ThePostgresqlSqlDialect;
-import com.gitee.dbswitch.common.type.DatabaseTypeEnum;
+import com.gitee.dbswitch.common.type.ProductTypeEnum;
import com.gitee.dbswitch.sql.service.ISqlConvertService;
/**
@@ -40,7 +40,7 @@ public class CalciteSqlConvertServiceImpl implements ISqlConvertService {
private static final Logger logger = LoggerFactory.getLogger(CalciteSqlConvertServiceImpl.class);
- private Lex getDatabaseLex(DatabaseTypeEnum type) {
+ private Lex getDatabaseLex(ProductTypeEnum type) {
switch (type) {
case MYSQL:
return Lex.MYSQL;
@@ -55,7 +55,7 @@ public class CalciteSqlConvertServiceImpl implements ISqlConvertService {
}
}
- private SqlDialect getDatabaseDialect(DatabaseTypeEnum type) {
+ private SqlDialect getDatabaseDialect(ProductTypeEnum type) {
switch (type) {
case MYSQL:
return TheMysqlSqlDialect.DEFAULT;
@@ -94,7 +94,7 @@ public class CalciteSqlConvertServiceImpl implements ISqlConvertService {
}
@Override
- public String dmlSentence(String sql, DatabaseTypeEnum target) {
+ public String dmlSentence(String sql, ProductTypeEnum target) {
logger.info("DML SQL: [{}] {} ", target.name(), sql);
SqlParser.Config config = SqlParser.configBuilder().build();
SqlParser parser = SqlParser.create(sql, config);
@@ -109,7 +109,7 @@ public class CalciteSqlConvertServiceImpl implements ISqlConvertService {
}
@Override
- public String dmlSentence(DatabaseTypeEnum source, DatabaseTypeEnum target, String sql) {
+ public String dmlSentence(ProductTypeEnum source, ProductTypeEnum target, String sql) {
logger.info("DML SQL: [{}->{}] {} ", source.name(), target.name(), sql);
SqlParser.Config config = SqlParser.configBuilder().setLex(this.getDatabaseLex(source)).build();
SqlParser parser = SqlParser.create(sql, config);
@@ -149,7 +149,7 @@ public class CalciteSqlConvertServiceImpl implements ISqlConvertService {
}
@Override
- public String ddlSentence(String sql, DatabaseTypeEnum target) {
+ public String ddlSentence(String sql, ProductTypeEnum target) {
logger.info("DDL SQL: [{}] {} ", target.name(), sql);
SqlParser.Config config = SqlParser.configBuilder()
.setParserFactory(SqlDdlParserImpl.FACTORY)
@@ -168,7 +168,7 @@ public class CalciteSqlConvertServiceImpl implements ISqlConvertService {
}
@Override
- public String ddlSentence(DatabaseTypeEnum source, DatabaseTypeEnum target, String sql) {
+ public String ddlSentence(ProductTypeEnum source, ProductTypeEnum target, String sql) {
logger.info("DDL SQL: [{}->{}] {} ", source.name(), target.name(), sql);
SqlParser.Config config = SqlParser.configBuilder()
.setParserFactory(SqlDdlParserImpl.FACTORY)
@@ -193,7 +193,7 @@ public class CalciteSqlConvertServiceImpl implements ISqlConvertService {
}
@Override
- public String dclSentence(DatabaseTypeEnum source,DatabaseTypeEnum target,String sql) {
+ public String dclSentence(ProductTypeEnum source, ProductTypeEnum target,String sql) {
throw new RuntimeException("Unimplement!");
}
diff --git a/dbswitch-sql/src/main/java/com/gitee/dbswitch/sql/service/impl/MyselfSqlGeneratorServiceImpl.java b/dbswitch-sql/src/main/java/com/gitee/dbswitch/sql/service/impl/MyselfSqlGeneratorServiceImpl.java
index ff0ca920..ec928542 100644
--- a/dbswitch-sql/src/main/java/com/gitee/dbswitch/sql/service/impl/MyselfSqlGeneratorServiceImpl.java
+++ b/dbswitch-sql/src/main/java/com/gitee/dbswitch/sql/service/impl/MyselfSqlGeneratorServiceImpl.java
@@ -11,7 +11,7 @@ package com.gitee.dbswitch.sql.service.impl;
import java.util.HashMap;
import java.util.Map;
-import com.gitee.dbswitch.common.type.DatabaseTypeEnum;
+import com.gitee.dbswitch.common.type.ProductTypeEnum;
import com.gitee.dbswitch.sql.service.ISqlGeneratorService;
import com.gitee.dbswitch.sql.ddl.AbstractDatabaseDialect;
import com.gitee.dbswitch.sql.ddl.AbstractSqlDdlOperator;
@@ -33,16 +33,16 @@ import com.gitee.dbswitch.sql.ddl.sql.impl.PostgresDialectImpl;
*/
public class MyselfSqlGeneratorServiceImpl implements ISqlGeneratorService {
- private static final Map DATABASE_MAPPER = new HashMap();
+ private static final Map DATABASE_MAPPER = new HashMap();
static {
- DATABASE_MAPPER.put(DatabaseTypeEnum.MYSQL, MySqlDialectImpl.class.getName());
- DATABASE_MAPPER.put(DatabaseTypeEnum.ORACLE, OracleDialectImpl.class.getName());
- DATABASE_MAPPER.put(DatabaseTypeEnum.POSTGRESQL, PostgresDialectImpl.class.getName());
- DATABASE_MAPPER.put(DatabaseTypeEnum.GREENPLUM, GreenplumDialectImpl.class.getName());
+ DATABASE_MAPPER.put(ProductTypeEnum.MYSQL, MySqlDialectImpl.class.getName());
+ DATABASE_MAPPER.put(ProductTypeEnum.ORACLE, OracleDialectImpl.class.getName());
+ DATABASE_MAPPER.put(ProductTypeEnum.POSTGRESQL, PostgresDialectImpl.class.getName());
+ DATABASE_MAPPER.put(ProductTypeEnum.GREENPLUM, GreenplumDialectImpl.class.getName());
}
- public static AbstractDatabaseDialect getDatabaseInstance(DatabaseTypeEnum type) {
+ public static AbstractDatabaseDialect getDatabaseInstance(ProductTypeEnum type) {
if (DATABASE_MAPPER.containsKey(type)) {
String className = DATABASE_MAPPER.get(type);
try {
@@ -57,7 +57,7 @@ public class MyselfSqlGeneratorServiceImpl implements ISqlGeneratorService {
@Override
public String createTable(String dbType, TableDefinition t) {
- DatabaseTypeEnum type = DatabaseTypeEnum.valueOf(dbType.toUpperCase());
+ ProductTypeEnum type = ProductTypeEnum.valueOf(dbType.toUpperCase());
AbstractDatabaseDialect dialect = getDatabaseInstance(type);
AbstractSqlDdlOperator operator = new DdlSqlCreateTable(t);
return operator.toSqlString(dialect);
@@ -65,7 +65,7 @@ public class MyselfSqlGeneratorServiceImpl implements ISqlGeneratorService {
@Override
public String alterTable(String dbType, String handle, TableDefinition t){
- DatabaseTypeEnum type = DatabaseTypeEnum.valueOf(dbType.toUpperCase());
+ ProductTypeEnum type = ProductTypeEnum.valueOf(dbType.toUpperCase());
AbstractDatabaseDialect dialect = getDatabaseInstance(type);
AbstractSqlDdlOperator operator = new DdlSqlAlterTable(t,handle);
return operator.toSqlString(dialect);
@@ -73,7 +73,7 @@ public class MyselfSqlGeneratorServiceImpl implements ISqlGeneratorService {
@Override
public String dropTable(String dbType, TableDefinition t) {
- DatabaseTypeEnum type = DatabaseTypeEnum.valueOf(dbType.toUpperCase());
+ ProductTypeEnum type = ProductTypeEnum.valueOf(dbType.toUpperCase());
AbstractDatabaseDialect dialect = getDatabaseInstance(type);
AbstractSqlDdlOperator operator = new DdlSqlDropTable(t);
return operator.toSqlString(dialect);
@@ -81,7 +81,7 @@ public class MyselfSqlGeneratorServiceImpl implements ISqlGeneratorService {
@Override
public String truncateTable(String dbType, TableDefinition t) {
- DatabaseTypeEnum type = DatabaseTypeEnum.valueOf(dbType.toUpperCase());
+ ProductTypeEnum type = ProductTypeEnum.valueOf(dbType.toUpperCase());
AbstractDatabaseDialect dialect = getDatabaseInstance(type);
AbstractSqlDdlOperator operator = new DdlSqlTruncateTable(t);
return operator.toSqlString(dialect);