From b533e6441b9ab1c2355fb7135337849578bcf1e1 Mon Sep 17 00:00:00 2001 From: qraddx Date: Tue, 18 Jan 2022 15:01:41 +0800 Subject: [PATCH] =?UTF-8?q?:bug:=20Fixing=20a=20bug.=20close=20#3575=20?= =?UTF-8?q?=E4=BB=A3=E7=A0=81=E7=94=9F=E6=88=90=E5=99=A8=E8=BF=9E=E6=8E=A5?= =?UTF-8?q?sqlserver=E6=8A=A5=E9=94=99=EF=BC=8C=E6=97=A0=E6=B3=95=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E5=88=B0=E5=BA=93=E4=B8=AD=E7=9A=84=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../config/JdbcDynamicDataSourceProvider.java | 17 +++++------------ .../common/datasource/util/DsJdbcUrlEnum.java | 12 +++++++----- 2 files changed, 12 insertions(+), 17 deletions(-) diff --git a/pigx-common/pigx-common-datasource/src/main/java/com/pig4cloud/pigx/common/datasource/config/JdbcDynamicDataSourceProvider.java b/pigx-common/pigx-common-datasource/src/main/java/com/pig4cloud/pigx/common/datasource/config/JdbcDynamicDataSourceProvider.java index eb9bdaffc..3bf449422 100644 --- a/pigx-common/pigx-common-datasource/src/main/java/com/pig4cloud/pigx/common/datasource/config/JdbcDynamicDataSourceProvider.java +++ b/pigx-common/pigx-common-datasource/src/main/java/com/pig4cloud/pigx/common/datasource/config/JdbcDynamicDataSourceProvider.java @@ -77,24 +77,17 @@ public class JdbcDynamicDataSourceProvider extends AbstractJdbcDataSourceProvide if (DsConfTypeEnum.JDBC.getType().equals(confType)) { url = rs.getString(DataSourceConstants.DS_JDBC_URL); } - else if (DsJdbcUrlEnum.MSSQL.getDbName().equals(dsType)) { - // Druid Config - DruidConfig druidConfig = new DruidConfig(); - druidConfig.setValidationQuery("select 'x'"); - property.setDruid(druidConfig); - - String host = rs.getString(DataSourceConstants.DS_HOST); - String port = rs.getString(DataSourceConstants.DS_PORT); - String dsName = rs.getString(DataSourceConstants.DS_NAME); - String instance = rs.getString(DataSourceConstants.DS_INSTANCE); - url = String.format(urlEnum.getUrl(), host, instance, port, dsName); - } else { String host = rs.getString(DataSourceConstants.DS_HOST); String port = rs.getString(DataSourceConstants.DS_PORT); String dsName = rs.getString(DataSourceConstants.DS_NAME); url = String.format(urlEnum.getUrl(), host, port, dsName); } + + // Druid Config + DruidConfig druidConfig = new DruidConfig(); + druidConfig.setValidationQuery(urlEnum.getValidationQuery()); + property.setDruid(druidConfig); property.setUrl(url); map.put(name, property); diff --git a/pigx-common/pigx-common-datasource/src/main/java/com/pig4cloud/pigx/common/datasource/util/DsJdbcUrlEnum.java b/pigx-common/pigx-common-datasource/src/main/java/com/pig4cloud/pigx/common/datasource/util/DsJdbcUrlEnum.java index 44b064f7b..eed30ee29 100644 --- a/pigx-common/pigx-common-datasource/src/main/java/com/pig4cloud/pigx/common/datasource/util/DsJdbcUrlEnum.java +++ b/pigx-common/pigx-common-datasource/src/main/java/com/pig4cloud/pigx/common/datasource/util/DsJdbcUrlEnum.java @@ -22,32 +22,34 @@ public enum DsJdbcUrlEnum { "jdbc:mysql://%s:%s/%s?characterEncoding=utf8" + "&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true" + "&useLegacyDatetimeCode=false&allowMultiQueries=true&allowPublicKeyRetrieval=true", - "mysql8 链接"), + "select 1", "mysql8 链接"), /** * pg 数据库 */ - PG("pg", "jdbc:postgresql://%s:%s/%s", "postgresql 链接"), + PG("pg", "jdbc:postgresql://%s:%s/%s", "select 1", "postgresql 链接"), /** * SQL SERVER */ - MSSQL("mssql", "jdbc:sqlserver://%s\\%s:%s;database=%s;characterEncoding=UTF-8", "sqlserver 链接"), + MSSQL("mssql", "jdbc:sqlserver://%s:%s;database=%s;characterEncoding=UTF-8", "select 1", "sqlserver 链接"), /** * oracle */ - ORACLE("oracle", "jdbc:oracle:thin:@%s:%s:%s", "oracle 链接"), + ORACLE("oracle", "jdbc:oracle:thin:@%s:%s:%s", "select 1 from dual", "oracle 链接"), /** * db2 */ - DB2("db2", "jdbc:db2://%s:%s/%s", "DB2 TYPE4 连接"); + DB2("db2", "jdbc:db2://%s:%s/%s", "select 1 from sysibm.sysdummy1", "DB2 TYPE4 连接"); private final String dbName; private final String url; + private final String validationQuery; + private final String description; public static DsJdbcUrlEnum get(String dsType) {