This is an automated email from the ASF dual-hosted git repository.

peacewong pushed a commit to branch dev-1.4.0
in repository https://gitbox.apache.org/repos/asf/linkis.git


The following commit(s) were added to refs/heads/dev-1.4.0 by this push:
     new 04791effe metadata-query code optimization (#4523)
04791effe is described below

commit 04791effee58e0670801c68190e768ea576694b1
Author: ChengJie1053 <[email protected]>
AuthorDate: Wed May 10 21:36:03 2023 +0800

    metadata-query code optimization (#4523)
---
 docs/configuration/linkis-metadata-query.md        |  10 ++
 .../query/common/cache/CacheConfiguration.java     |   5 +
 .../server/loader/MetaClassLoaderManager.java      |  34 ++++++-
 .../metadata/query/service/DorisMetaService.java   |  98 --------------------
 .../metadata/query/service/GaussdbMetaService.java | 103 ---------------------
 .../query/service/StarrocksMetaService.java        |  98 --------------------
 .../metadata/query/service/TidbMetaService.java    |  98 --------------------
 7 files changed, 48 insertions(+), 398 deletions(-)

diff --git a/docs/configuration/linkis-metadata-query.md 
b/docs/configuration/linkis-metadata-query.md
new file mode 100644
index 000000000..35da9ea69
--- /dev/null
+++ b/docs/configuration/linkis-metadata-query.md
@@ -0,0 +1,10 @@
+## linkis-metadata-query configure
+
+
+| Module Name (Service Name) | Parameter Name | Default Value | Description |
+| -------- | -------- | ----- |----- | 
+| linkis-metadata-query 
|wds.linkis.server.mdm.service.cache.max-size|1000L|cache.max-size|
+| linkis-metadata-query 
|wds.linkis.server.mdm.service.cache.expire|600L|cache.expire|
+| linkis-metadata-query 
|wds.linkis.server.mdm.service.cache.in-pool.size|5|cache.in-pool.size|
+| linkis-metadata-query 
|wds.linkis.server.mdq.mysql.relationship|mysql,oracle,kingbase,postgresql,sqlserver,db2,greenplum,dm,doris,clickhouse,tidb,starrocks,gaussdb|mysql.relationship|
+| linkis-metadata-query 
|linkis.server.mdq.query.database.relationship|{"tidb":"mysql","doris":"mysql","starrocks":"mysql","gaussdb":"postgresql"}|database.relationship|
diff --git 
a/linkis-public-enhancements/linkis-datasource/linkis-metadata-query/common/src/main/java/org/apache/linkis/metadata/query/common/cache/CacheConfiguration.java
 
b/linkis-public-enhancements/linkis-datasource/linkis-metadata-query/common/src/main/java/org/apache/linkis/metadata/query/common/cache/CacheConfiguration.java
index 2aacc7382..a8f60097b 100644
--- 
a/linkis-public-enhancements/linkis-datasource/linkis-metadata-query/common/src/main/java/org/apache/linkis/metadata/query/common/cache/CacheConfiguration.java
+++ 
b/linkis-public-enhancements/linkis-datasource/linkis-metadata-query/common/src/main/java/org/apache/linkis/metadata/query/common/cache/CacheConfiguration.java
@@ -35,4 +35,9 @@ public class CacheConfiguration {
       CommonVars.apply(
           "wds.linkis.server.mdq.mysql.relationship",
           
"mysql,oracle,kingbase,postgresql,sqlserver,db2,greenplum,dm,doris,clickhouse,tidb,starrocks,gaussdb");
+
+  public static final CommonVars<String> QUERY_DATABASE_RELATIONSHIP =
+      CommonVars.apply(
+          "linkis.server.mdq.query.database.relationship",
+          
"{\"tidb\":\"mysql\",\"doris\":\"mysql\",\"starrocks\":\"mysql\",\"gaussdb\":\"postgresql\"}");
 }
diff --git 
a/linkis-public-enhancements/linkis-datasource/linkis-metadata-query/server/src/main/java/org/apache/linkis/metadata/query/server/loader/MetaClassLoaderManager.java
 
b/linkis-public-enhancements/linkis-datasource/linkis-metadata-query/server/src/main/java/org/apache/linkis/metadata/query/server/loader/MetaClassLoaderManager.java
index 8513db6ac..21e4b1ac8 100644
--- 
a/linkis-public-enhancements/linkis-datasource/linkis-metadata-query/server/src/main/java/org/apache/linkis/metadata/query/server/loader/MetaClassLoaderManager.java
+++ 
b/linkis-public-enhancements/linkis-datasource/linkis-metadata-query/server/src/main/java/org/apache/linkis/metadata/query/server/loader/MetaClassLoaderManager.java
@@ -20,12 +20,15 @@ package org.apache.linkis.metadata.query.server.loader;
 import org.apache.linkis.common.conf.CommonVars;
 import org.apache.linkis.common.conf.Configuration;
 import org.apache.linkis.common.exception.ErrorException;
+import org.apache.linkis.datasourcemanager.common.exception.JsonErrorException;
+import org.apache.linkis.datasourcemanager.common.util.json.Json;
 import org.apache.linkis.metadata.query.common.cache.CacheConfiguration;
 import org.apache.linkis.metadata.query.common.exception.MetaRuntimeException;
 import 
org.apache.linkis.metadata.query.common.service.AbstractCacheMetaService;
 import org.apache.linkis.metadata.query.common.service.BaseMetadataService;
 import org.apache.linkis.metadata.query.server.utils.MetadataUtils;
 
+import org.apache.commons.collections.MapUtils;
 import org.apache.commons.lang3.StringUtils;
 
 import java.io.File;
@@ -54,6 +57,19 @@ public class MetaClassLoaderManager {
 
   private final Map<String, MetaServiceInstance> metaServiceInstances = new 
ConcurrentHashMap<>();
 
+  private static Map<String, String> databaseRelationship = 
getDatabaseRelationship();
+
+  private static Map<String, String> getDatabaseRelationship() {
+    try {
+      return Json.fromJson(
+          CacheConfiguration.QUERY_DATABASE_RELATIONSHIP.getValue(), 
HashMap.class);
+    } catch (JsonErrorException e) {
+      LOG.warn(
+          "databaseRelationship parse exception,please check 
[linkis.server.mdq.query.database.relationship] parameter");
+      return new HashMap<>();
+    }
+  }
+
   public static CommonVars<String> LIB_DIR =
       CommonVars.apply(
           "wds.linkis.server.mdm.service.lib.dir",
@@ -128,7 +144,23 @@ public class MetaClassLoaderManager {
                 }
                 String expectClassName = null;
                 if (dsType.length() > 0) {
-                  String prefix = dsType.substring(0, 1).toUpperCase() + 
dsType.substring(1);
+                  String converDsType = dsType;
+                  try {
+                    if (MapUtils.isNotEmpty(databaseRelationship)
+                        && databaseRelationship.containsKey(dsType)) {
+                      String value = MapUtils.getString(databaseRelationship, 
dsType);
+                      if (StringUtils.isNotBlank(value)
+                          && CacheConfiguration.MYSQL_RELATIONSHIP_LIST
+                              .getValue()
+                              .contains(value)) {
+                        converDsType = value;
+                      }
+                    }
+                  } catch (Exception e) {
+                    LOG.warn("dsType conver failed: {}", dsType);
+                  }
+                  String prefix =
+                      converDsType.substring(0, 1).toUpperCase() + 
converDsType.substring(1);
                   expectClassName = String.format(META_CLASS_NAME, prefix);
                 }
                 Class<? extends BaseMetadataService> metaServiceClass =
diff --git 
a/linkis-public-enhancements/linkis-datasource/linkis-metadata-query/service/jdbc/src/main/java/org/apache/linkis/metadata/query/service/DorisMetaService.java
 
b/linkis-public-enhancements/linkis-datasource/linkis-metadata-query/service/jdbc/src/main/java/org/apache/linkis/metadata/query/service/DorisMetaService.java
deleted file mode 100644
index 40b28ae5a..000000000
--- 
a/linkis-public-enhancements/linkis-datasource/linkis-metadata-query/service/jdbc/src/main/java/org/apache/linkis/metadata/query/service/DorisMetaService.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.linkis.metadata.query.service;
-
-import org.apache.linkis.datasourcemanager.common.util.json.Json;
-import org.apache.linkis.metadata.query.common.domain.MetaColumnInfo;
-import org.apache.linkis.metadata.query.common.service.AbstractDbMetaService;
-import org.apache.linkis.metadata.query.common.service.MetadataConnection;
-import org.apache.linkis.metadata.query.service.conf.SqlParamsMapper;
-import org.apache.linkis.metadata.query.service.mysql.SqlConnection;
-
-import org.apache.commons.lang3.StringUtils;
-
-import org.springframework.stereotype.Component;
-
-import java.sql.SQLException;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-@Component
-public class DorisMetaService extends AbstractDbMetaService<SqlConnection> {
-  @Override
-  public MetadataConnection<SqlConnection> getConnection(
-      String operator, Map<String, Object> params) throws Exception {
-    String host =
-        
String.valueOf(params.getOrDefault(SqlParamsMapper.PARAM_SQL_HOST.getValue(), 
""));
-    Integer port =
-        (Double.valueOf(
-                
String.valueOf(params.getOrDefault(SqlParamsMapper.PARAM_SQL_PORT.getValue(), 
0))))
-            .intValue();
-    String username =
-        
String.valueOf(params.getOrDefault(SqlParamsMapper.PARAM_SQL_USERNAME.getValue(),
 ""));
-    String password =
-        
String.valueOf(params.getOrDefault(SqlParamsMapper.PARAM_SQL_PASSWORD.getValue(),
 ""));
-
-    String database =
-        
String.valueOf(params.getOrDefault(SqlParamsMapper.PARAM_SQL_DATABASE.getValue(),
 ""));
-    Map<String, Object> extraParams = new HashMap<>();
-    Object sqlParamObj = 
params.get(SqlParamsMapper.PARAM_SQL_EXTRA_PARAMS.getValue());
-    if (null != sqlParamObj) {
-      if (!(sqlParamObj instanceof Map)) {
-        String paramStr = String.valueOf(sqlParamObj);
-        if (StringUtils.isNotBlank(paramStr)) {
-          extraParams = Json.fromJson(paramStr, Map.class, String.class, 
Object.class);
-        }
-      } else {
-        extraParams = (Map<String, Object>) sqlParamObj;
-      }
-    }
-    assert extraParams != null;
-    return new MetadataConnection<>(
-        new SqlConnection(host, port, username, password, database, 
extraParams));
-  }
-
-  @Override
-  public List<String> queryDatabases(SqlConnection connection) {
-    try {
-      return connection.getAllDatabases();
-    } catch (SQLException e) {
-      throw new RuntimeException("Fail to get Sql databases(获取数据库列表失败)", e);
-    }
-  }
-
-  @Override
-  public List<String> queryTables(SqlConnection connection, String database) {
-    try {
-      return connection.getAllTables(database);
-    } catch (SQLException e) {
-      throw new RuntimeException("Fail to get Sql tables(获取表列表失败)", e);
-    }
-  }
-
-  @Override
-  public List<MetaColumnInfo> queryColumns(
-      SqlConnection connection, String database, String table) {
-    try {
-      return connection.getColumns(database, table);
-    } catch (SQLException | ClassNotFoundException e) {
-      throw new RuntimeException("Fail to get Sql columns(获取字段列表失败)", e);
-    }
-  }
-}
diff --git 
a/linkis-public-enhancements/linkis-datasource/linkis-metadata-query/service/jdbc/src/main/java/org/apache/linkis/metadata/query/service/GaussdbMetaService.java
 
b/linkis-public-enhancements/linkis-datasource/linkis-metadata-query/service/jdbc/src/main/java/org/apache/linkis/metadata/query/service/GaussdbMetaService.java
deleted file mode 100644
index 956e92065..000000000
--- 
a/linkis-public-enhancements/linkis-datasource/linkis-metadata-query/service/jdbc/src/main/java/org/apache/linkis/metadata/query/service/GaussdbMetaService.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.linkis.metadata.query.service;
-
-import org.apache.linkis.datasourcemanager.common.util.json.Json;
-import org.apache.linkis.metadata.query.common.domain.MetaColumnInfo;
-import org.apache.linkis.metadata.query.common.service.AbstractDbMetaService;
-import org.apache.linkis.metadata.query.common.service.MetadataConnection;
-import org.apache.linkis.metadata.query.service.conf.SqlParamsMapper;
-import org.apache.linkis.metadata.query.service.postgres.SqlConnection;
-
-import org.apache.logging.log4j.util.Strings;
-
-import java.sql.SQLException;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-public class GaussdbMetaService extends AbstractDbMetaService<SqlConnection> {
-  @Override
-  public MetadataConnection<SqlConnection> getConnection(
-      String operator, Map<String, Object> params) throws Exception {
-    String host =
-        
String.valueOf(params.getOrDefault(SqlParamsMapper.PARAM_SQL_HOST.getValue(), 
""));
-    // After deserialize, Integer will be Double, Why?
-    Integer port =
-        (Double.valueOf(
-                
String.valueOf(params.getOrDefault(SqlParamsMapper.PARAM_SQL_PORT.getValue(), 
0))))
-            .intValue();
-    String username =
-        
String.valueOf(params.getOrDefault(SqlParamsMapper.PARAM_SQL_USERNAME.getValue(),
 ""));
-    String password =
-        
String.valueOf(params.getOrDefault(SqlParamsMapper.PARAM_SQL_PASSWORD.getValue(),
 ""));
-    // In PG, each database under the same instance is completely independent, 
and the table is
-    // stored under the catalog with the same library name.
-    // \c (\connect) Behind the dbname command is to close the current 
connection and create a
-    // new connection to achieve database switching
-    // Cannot directly switch to another database under the current database 
connection, and
-    // cannot show tables from xxxx, select * from database.table like MySQL
-
-    String database =
-        
String.valueOf(params.getOrDefault(SqlParamsMapper.PARAM_SQL_DATABASE.getValue(),
 ""));
-    Map<String, Object> extraParams = new HashMap<>();
-    Object sqlParamObj = 
params.get(SqlParamsMapper.PARAM_SQL_EXTRA_PARAMS.getValue());
-    if (null != sqlParamObj) {
-      if (!(sqlParamObj instanceof Map)) {
-        extraParams =
-            Json.fromJson(String.valueOf(sqlParamObj), Map.class, 
String.class, Object.class);
-      } else {
-        extraParams = (Map<String, Object>) sqlParamObj;
-      }
-    }
-    assert extraParams != null;
-    if (Strings.isBlank(database)) {
-      database = "";
-    }
-    return new MetadataConnection<>(
-        new SqlConnection(host, port, username, password, database, 
extraParams));
-  }
-
-  @Override
-  public List<String> queryTables(SqlConnection connection, String schemaname) 
{
-    try {
-      return connection.getAllTables(schemaname);
-    } catch (SQLException e) {
-      throw new RuntimeException("Fail to get Sql tables(获取表列表失败)", e);
-    }
-  }
-
-  @Override
-  public List<String> queryDatabases(SqlConnection connection) {
-    try {
-      return connection.getAllDatabases();
-    } catch (SQLException e) {
-      throw new RuntimeException("Fail to get Sql databases(获取数据库列表失败)", e);
-    }
-  }
-
-  @Override
-  public List<MetaColumnInfo> queryColumns(
-      SqlConnection connection, String database, String table) {
-    try {
-      return connection.getColumns(database, table);
-    } catch (SQLException | ClassNotFoundException e) {
-      throw new RuntimeException("Fail to get Sql columns(获取字段列表失败)", e);
-    }
-  }
-}
diff --git 
a/linkis-public-enhancements/linkis-datasource/linkis-metadata-query/service/jdbc/src/main/java/org/apache/linkis/metadata/query/service/StarrocksMetaService.java
 
b/linkis-public-enhancements/linkis-datasource/linkis-metadata-query/service/jdbc/src/main/java/org/apache/linkis/metadata/query/service/StarrocksMetaService.java
deleted file mode 100644
index d58c3d4c2..000000000
--- 
a/linkis-public-enhancements/linkis-datasource/linkis-metadata-query/service/jdbc/src/main/java/org/apache/linkis/metadata/query/service/StarrocksMetaService.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.linkis.metadata.query.service;
-
-import org.apache.linkis.datasourcemanager.common.util.json.Json;
-import org.apache.linkis.metadata.query.common.domain.MetaColumnInfo;
-import org.apache.linkis.metadata.query.common.service.AbstractDbMetaService;
-import org.apache.linkis.metadata.query.common.service.MetadataConnection;
-import org.apache.linkis.metadata.query.service.conf.SqlParamsMapper;
-import org.apache.linkis.metadata.query.service.mysql.SqlConnection;
-
-import org.apache.commons.lang3.StringUtils;
-
-import org.springframework.stereotype.Component;
-
-import java.sql.SQLException;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-@Component
-public class StarrocksMetaService extends AbstractDbMetaService<SqlConnection> 
{
-  @Override
-  public MetadataConnection<SqlConnection> getConnection(
-      String operator, Map<String, Object> params) throws Exception {
-    String host =
-        
String.valueOf(params.getOrDefault(SqlParamsMapper.PARAM_SQL_HOST.getValue(), 
""));
-    Integer port =
-        (Double.valueOf(
-                
String.valueOf(params.getOrDefault(SqlParamsMapper.PARAM_SQL_PORT.getValue(), 
0))))
-            .intValue();
-    String username =
-        
String.valueOf(params.getOrDefault(SqlParamsMapper.PARAM_SQL_USERNAME.getValue(),
 ""));
-    String password =
-        
String.valueOf(params.getOrDefault(SqlParamsMapper.PARAM_SQL_PASSWORD.getValue(),
 ""));
-
-    String database =
-        
String.valueOf(params.getOrDefault(SqlParamsMapper.PARAM_SQL_DATABASE.getValue(),
 ""));
-    Map<String, Object> extraParams = new HashMap<>();
-    Object sqlParamObj = 
params.get(SqlParamsMapper.PARAM_SQL_EXTRA_PARAMS.getValue());
-    if (null != sqlParamObj) {
-      if (!(sqlParamObj instanceof Map)) {
-        String paramStr = String.valueOf(sqlParamObj);
-        if (StringUtils.isNotBlank(paramStr)) {
-          extraParams = Json.fromJson(paramStr, Map.class, String.class, 
Object.class);
-        }
-      } else {
-        extraParams = (Map<String, Object>) sqlParamObj;
-      }
-    }
-    assert extraParams != null;
-    return new MetadataConnection<>(
-        new SqlConnection(host, port, username, password, database, 
extraParams));
-  }
-
-  @Override
-  public List<String> queryDatabases(SqlConnection connection) {
-    try {
-      return connection.getAllDatabases();
-    } catch (SQLException e) {
-      throw new RuntimeException("Fail to get Sql databases(获取数据库列表失败)", e);
-    }
-  }
-
-  @Override
-  public List<String> queryTables(SqlConnection connection, String database) {
-    try {
-      return connection.getAllTables(database);
-    } catch (SQLException e) {
-      throw new RuntimeException("Fail to get Sql tables(获取表列表失败)", e);
-    }
-  }
-
-  @Override
-  public List<MetaColumnInfo> queryColumns(
-      SqlConnection connection, String database, String table) {
-    try {
-      return connection.getColumns(database, table);
-    } catch (SQLException | ClassNotFoundException e) {
-      throw new RuntimeException("Fail to get Sql columns(获取字段列表失败)", e);
-    }
-  }
-}
diff --git 
a/linkis-public-enhancements/linkis-datasource/linkis-metadata-query/service/jdbc/src/main/java/org/apache/linkis/metadata/query/service/TidbMetaService.java
 
b/linkis-public-enhancements/linkis-datasource/linkis-metadata-query/service/jdbc/src/main/java/org/apache/linkis/metadata/query/service/TidbMetaService.java
deleted file mode 100644
index 2843bebbc..000000000
--- 
a/linkis-public-enhancements/linkis-datasource/linkis-metadata-query/service/jdbc/src/main/java/org/apache/linkis/metadata/query/service/TidbMetaService.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.linkis.metadata.query.service;
-
-import org.apache.linkis.datasourcemanager.common.util.json.Json;
-import org.apache.linkis.metadata.query.common.domain.MetaColumnInfo;
-import org.apache.linkis.metadata.query.common.service.AbstractDbMetaService;
-import org.apache.linkis.metadata.query.common.service.MetadataConnection;
-import org.apache.linkis.metadata.query.service.conf.SqlParamsMapper;
-import org.apache.linkis.metadata.query.service.mysql.SqlConnection;
-
-import org.apache.commons.lang3.StringUtils;
-
-import org.springframework.stereotype.Component;
-
-import java.sql.SQLException;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-@Component
-public class TidbMetaService extends AbstractDbMetaService<SqlConnection> {
-  @Override
-  public MetadataConnection<SqlConnection> getConnection(
-      String operator, Map<String, Object> params) throws Exception {
-    String host =
-        
String.valueOf(params.getOrDefault(SqlParamsMapper.PARAM_SQL_HOST.getValue(), 
""));
-    Integer port =
-        (Double.valueOf(
-                
String.valueOf(params.getOrDefault(SqlParamsMapper.PARAM_SQL_PORT.getValue(), 
0))))
-            .intValue();
-    String username =
-        
String.valueOf(params.getOrDefault(SqlParamsMapper.PARAM_SQL_USERNAME.getValue(),
 ""));
-    String password =
-        
String.valueOf(params.getOrDefault(SqlParamsMapper.PARAM_SQL_PASSWORD.getValue(),
 ""));
-
-    String database =
-        
String.valueOf(params.getOrDefault(SqlParamsMapper.PARAM_SQL_DATABASE.getValue(),
 ""));
-    Map<String, Object> extraParams = new HashMap<>();
-    Object sqlParamObj = 
params.get(SqlParamsMapper.PARAM_SQL_EXTRA_PARAMS.getValue());
-    if (null != sqlParamObj) {
-      if (!(sqlParamObj instanceof Map)) {
-        String paramStr = String.valueOf(sqlParamObj);
-        if (StringUtils.isNotBlank(paramStr)) {
-          extraParams = Json.fromJson(paramStr, Map.class, String.class, 
Object.class);
-        }
-      } else {
-        extraParams = (Map<String, Object>) sqlParamObj;
-      }
-    }
-    assert extraParams != null;
-    return new MetadataConnection<>(
-        new SqlConnection(host, port, username, password, database, 
extraParams));
-  }
-
-  @Override
-  public List<String> queryDatabases(SqlConnection connection) {
-    try {
-      return connection.getAllDatabases();
-    } catch (SQLException e) {
-      throw new RuntimeException("Fail to get Sql databases(获取数据库列表失败)", e);
-    }
-  }
-
-  @Override
-  public List<String> queryTables(SqlConnection connection, String database) {
-    try {
-      return connection.getAllTables(database);
-    } catch (SQLException e) {
-      throw new RuntimeException("Fail to get Sql tables(获取表列表失败)", e);
-    }
-  }
-
-  @Override
-  public List<MetaColumnInfo> queryColumns(
-      SqlConnection connection, String database, String table) {
-    try {
-      return connection.getColumns(database, table);
-    } catch (SQLException | ClassNotFoundException e) {
-      throw new RuntimeException("Fail to get Sql columns(获取字段列表失败)", e);
-    }
-  }
-}


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to