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]