From f29aa2ca95ea5b840a09601619679f8317af4288 Mon Sep 17 00:00:00 2001 From: taojinlong Date: Mon, 20 Jun 2022 14:59:02 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E8=A7=A3=E6=9E=90=20sql=20=E7=A9=BA?= =?UTF-8?q?=E6=8C=87=E9=92=88=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../io/dataease/service/dataset/DataSetTableService.java | 8 ++++++++ .../io/dataease/service/datasource/DatasourceService.java | 3 ++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java b/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java index 0666745755..0c78adae2d 100644 --- a/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java +++ b/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java @@ -962,14 +962,22 @@ public class DataSetTableService { public String removeVariables(String sql) throws Exception { Pattern pattern = Pattern.compile(regex); Matcher matcher = pattern.matcher(sql); + boolean hasVariables = false; while (matcher.find()) { + hasVariables = true; sql = sql.replace(matcher.group(), SubstitutedParams); } + if(!hasVariables){ + return sql; + } CCJSqlParserUtil.parse(sql, parser -> parser.withSquareBracketQuotation(true)); Statement statement = CCJSqlParserUtil.parse(sql); Select select = (Select) statement; PlainSelect plainSelect = ((PlainSelect) select.getSelectBody()); Expression expr = plainSelect.getWhere(); + if(expr == null){ + return sql; + } StringBuilder stringBuilder = new StringBuilder(); BinaryExpression binaryExpression = (BinaryExpression)expr; diff --git a/backend/src/main/java/io/dataease/service/datasource/DatasourceService.java b/backend/src/main/java/io/dataease/service/datasource/DatasourceService.java index cba528e0b0..f8cdfaf41c 100644 --- a/backend/src/main/java/io/dataease/service/datasource/DatasourceService.java +++ b/backend/src/main/java/io/dataease/service/datasource/DatasourceService.java @@ -143,7 +143,8 @@ public class DatasourceService { } if(datasourceDTO.getType().equalsIgnoreCase(DatasourceTypes.mysql.toString())){ - datasourceDTO.setConfiguration(datasourceDTO.getConfiguration()); + MysqlConfiguration mysqlConfiguration = new Gson().fromJson(datasourceDTO.getConfiguration(), MysqlConfiguration.class); + datasourceDTO.setConfiguration(new Gson().toJson(mysqlConfiguration)); } if (datasourceDTO.getType().equalsIgnoreCase(DatasourceTypes.api.toString())) { List apiDefinitionList = new Gson().fromJson(datasourceDTO.getConfiguration(), new TypeToken>() {}.getType());