From fc06d14c2453da5fb5ed376350ba471035124709 Mon Sep 17 00:00:00 2001 From: taojinlong Date: Wed, 12 Oct 2022 15:14:39 +0800 Subject: [PATCH] =?UTF-8?q?fix(=E6=95=B0=E6=8D=AE=E6=BA=90):=20=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E6=95=B0=E6=8D=AE=E6=BA=90=E6=97=B6=EF=BC=8C=E6=A0=A1?= =?UTF-8?q?=E9=AA=8C=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../provider/datasource/JdbcProvider.java | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/backend/src/main/java/io/dataease/provider/datasource/JdbcProvider.java b/backend/src/main/java/io/dataease/provider/datasource/JdbcProvider.java index 8b9dfc825c..105fc579fc 100644 --- a/backend/src/main/java/io/dataease/provider/datasource/JdbcProvider.java +++ b/backend/src/main/java/io/dataease/provider/datasource/JdbcProvider.java @@ -7,6 +7,7 @@ import io.dataease.commons.utils.LogUtil; import io.dataease.dto.datasource.*; import io.dataease.exception.DataEaseException; import io.dataease.i18n.Translator; +import io.dataease.plugins.common.base.domain.Datasource; import io.dataease.plugins.common.base.domain.DeDriver; import io.dataease.plugins.common.base.mapper.DeDriverMapper; import io.dataease.plugins.common.constants.DatasourceTypes; @@ -742,5 +743,35 @@ public class JdbcProvider extends DefaultJdbcProvider { } } + @Override + public void checkConfiguration(Datasource datasource)throws Exception{ + if (StringUtils.isEmpty(datasource.getConfiguration())){ + throw new Exception("Datasource configuration is empty"); + } + try { + JdbcConfiguration jdbcConfiguration = new Gson().fromJson(datasource.getConfiguration(), JdbcConfiguration.class); + if(jdbcConfiguration.getQueryTimeout() < 0){ + throw new Exception("Querytimeout cannot be less than zero." ); + } + }catch (Exception e){ + throw new Exception("Invalid configuration: " + e.getMessage()); + } + + DatasourceTypes datasourceType = DatasourceTypes.valueOf(datasource.getType()); + switch (datasourceType) { + case mysql: + case mariadb: + case engine_doris: + case engine_mysql: + case ds_doris: + case TiDB: + case StarRocks: + MysqlConfiguration mysqlConfiguration = new Gson().fromJson(datasource.getConfiguration(), MysqlConfiguration.class); + mysqlConfiguration.getJdbc(); + default: + break; + } + } + }