From 0268a4eb3ae7f18451e9ba5617a35b6ba6a566fb Mon Sep 17 00:00:00 2001 From: inrgihc Date: Tue, 16 Nov 2021 15:29:05 +0000 Subject: [PATCH] =?UTF-8?q?!63=20v1.6.1:=20Fix=20Bug=20*=20=E4=BF=AE?= =?UTF-8?q?=E5=A4=8Ddb2=E3=80=81sqlserver=E8=BF=9E=E6=8E=A5=E6=B5=8B?= =?UTF-8?q?=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/gitee/dbswitch/admin/type/SupportDbTypeEnum.java | 2 +- .../gitee/dbswitch/core/database/impl/DatabaseDB2Impl.java | 2 +- .../java/com/gitee/dbswitch/data/util/DataSouceUtils.java | 4 ++++ 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/dbswitch-admin/src/main/java/com/gitee/dbswitch/admin/type/SupportDbTypeEnum.java b/dbswitch-admin/src/main/java/com/gitee/dbswitch/admin/type/SupportDbTypeEnum.java index 947055e0..8b54bf61 100644 --- a/dbswitch-admin/src/main/java/com/gitee/dbswitch/admin/type/SupportDbTypeEnum.java +++ b/dbswitch-admin/src/main/java/com/gitee/dbswitch/admin/type/SupportDbTypeEnum.java @@ -23,7 +23,7 @@ public enum SupportDbTypeEnum { "jdbc:mariadb://{host}:{port}/{name}?useUnicode=true&characterEncoding=utf-8&useSSL=false&zeroDateTimeBehavior=convertToNull&serverTimezone=Asia/Shanghai&nullCatalogMeansCurrent=true&tinyInt1isBit=false"), ORACLE(3, "oracle", "oracle.jdbc.driver.OracleDriver", "SELECT 'Hello' from DUAL", "jdbc:oracle:thin:@{host}:{port}:{name}"), - SQLSERVER(4, "sqlserver", "com.microsoft.sqlserver.jdbc.SQLServerDriver", "SELECT 1", + SQLSERVER(4, "sqlserver", "com.microsoft.sqlserver.jdbc.SQLServerDriver", "SELECT 1+2 as a", "jdbc:sqlserver://{host}:{port};DatabaseName={name}"), POSTGRESQL(5, "postgresql", "org.postgresql.Driver", "SELECT 1", "jdbc:postgresql://{host}:{port}/{name}"), 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 f4e48e28..1afedae4 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 @@ -43,7 +43,7 @@ public class DatabaseDB2Impl extends AbstractDatabase implements IDatabaseInterf @Override protected String getTestQuerySQL(String sql) { - return String.format("explain %s", sql.replace(";", "")); + return String.format("SELECT * FROM ( %s ) t WHERE 1=2 ", sql.replace(";", "")); } @Override diff --git a/dbswitch-data/src/main/java/com/gitee/dbswitch/data/util/DataSouceUtils.java b/dbswitch-data/src/main/java/com/gitee/dbswitch/data/util/DataSouceUtils.java index 3485fad1..30601638 100644 --- a/dbswitch-data/src/main/java/com/gitee/dbswitch/data/util/DataSouceUtils.java +++ b/dbswitch-data/src/main/java/com/gitee/dbswitch/data/util/DataSouceUtils.java @@ -30,6 +30,8 @@ public final class DataSouceUtils { ds.setPassword(description.getPassword()); if (description.getDriverClassName().contains("oracle")) { ds.setConnectionTestQuery("SELECT 'Hello' from DUAL"); + } else if (description.getDriverClassName().contains("db2")) { + ds.setConnectionTestQuery("SELECT 1 FROM SYSIBM.SYSDUMMY1"); } else { ds.setConnectionTestQuery("SELECT 1"); } @@ -56,6 +58,8 @@ public final class DataSouceUtils { ds.setPassword(description.getPassword()); if (description.getDriverClassName().contains("oracle")) { ds.setConnectionTestQuery("SELECT 'Hello' from DUAL"); + } else if (description.getDriverClassName().contains("db2")) { + ds.setConnectionTestQuery("SELECT 1 FROM SYSIBM.SYSDUMMY1"); } else { ds.setConnectionTestQuery("SELECT 1"); }